Skip to content
79d6171
Compare
Choose a tag to compare

Announcing v0.9.2-2, NON-MANDATORY, HIGHLY RECOMMENDED FOR MAINNET -- CRITICAL FOR TESTNET USE

This update improves sync speed in some edge cases on both mainnet and testnet and on testnet fixes an error creating transactions for sub identity registrations on fractional reserve currencies. If you already went through the testnet reset process on any version since v0.9.2, you do not need to reset testnet. The rest of these release notes are the same as the prior version.

v0.9.2 RESETS TESTNET AND ADDS A COMPLETE SET OF NEW CAPABILITIES PREVIOUSLY CONSIDERED STRETCH GOALS THAT ENABLE BRANDED SUB-ID ISSUANCE WITH BOTH DECENTRALIZED AND CENTRALIZED OPTIONS AS WELL AS THE FIRST DISRUPTIVE TECHNOLOGY TO SOLVE FOR BRANDED LOYALTY IDENTITIES WITH NOVEL SOLUTIONS FOR ROYALTY AND IP LICENSING BUSINESS MODELS.

IF YOU HAVE ALREADY USED TESTNET WITH VERSIONS PRIOR TO v0.9.2, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

FOR MAINNET (AND TESTNET), v0.9.2 PROVIDES ENHANCED PRIVACY FEATURES FOR IDENTITY CREATION

PROTOCOL FEATURE COMPLETE

With v0.9.2, The Verus network, public blockchains as a service (PBaaS), VerusID extensions, and Verus DeFi protocols are considered feature complete for the coming mainnet PBaaS upgrade. The core developer focus now is protocol hardening and enabling usage first, followed by user experience upgrades and supporting infrastructure such as identity and login support for lite mode, mobile and web extension wallets as well as merge mining for pool servers.

NEW 3D CROSS-CHAIN LIQUIDITY NETWORK VISUALIZER (GUI FOR TESTNET)

In v0.9.2 Verus Desktop, there is a new 3-dimensional cross-chain network visualizer, which shows all currency conversion and fractional network connections both on chain and cross-chain, with the ability to move around and zoom in and out in 3 dimensions. To access the visualizer, click on “Visualize Network” on the Metaverse tab of Verus Desktop. If you’re interested in seeing the visualizer now, here’s a link directly to the visualizer as part of a recent video members of the community helped make (https://youtu.be/CkgUVjx_g1M?t=43).

NEW PBAAS CAPABILITIES

All PBaaS capabilities, including for application development, are available now on the new Verus testnet. Our goal for interoperability on this new testnet is to launch the Ethereum/Rinkeby bridge in the next couple days. Now would be a good time for development capable projects hoping to get a head start on using Verus’s transformative technologies to do a deep dive on the Verus testnet. These new capabilities in v0.9.2, as well as all those we are familiar with, available nowhere else, will be on mainnet SOON(™):

All fractional and centralized {“proofprotocol”:2} currencies can now issue as a decentralized operation, or with centralized currencies, sell, IDs using their own currency as the payment currency, with options for price, referrals, permission from the currency identity required, which means the transaction must be created or co-signed by the currency identity, or even referrals required, which means that an identity registration must have a referral and co-signature of a referring ID that is either the currency ID or another ID from that currency namespace.
For fully decentralized fractional currencies, ID registration is paid for by burning the specific fractional currency, reducing the supply, and raising the on-chain value of the primary currency relative to its reserves by reducing the current on-chain supply for everyone.
The minimum price of ID registration for fractional currencies can be set in either the fractional currency itself, or in one of its reserves, for example USDC or DAI.
More than the minimum price can be paid for ID registration, which may also include VDXF key and contract bindings to allow for multiple types of content or IP licensing in a single ID namespace.
Each currency, either centralized and/or fractional, can have multiple levels of referral support (limit of 5 levels), meaning that the ID registration fee will be reduced when referred and part of it will be divided evenly among past referrers. The remaining amount of the ID registration fee will be burned for decentralized currencies, or be sent to the currency ID for centralized currencies.

While Native IDs, those registered directly from a blockchain as the name parent, will be able to launch currencies on that blockchain, and if on Verus, actual independent blockchains, IDs issued by fractional or centralized currencies cannot launch currencies, but will still be valuable as revocation and recovery IDs for all other VerusIDs as well as for personalized on-chain and cross-chain addresses with all identity and NFT features, for proofs, for brands, contract binding, on-chain marketplace trading, or login, and will have the ability to cross-prove common ownership with other IDs as well.

The exception to non-native IDs creating currencies, is that *.veth gateway IDs will be available for decentralized registration from the Ethereum bridge converter and will be able to create Ethereum mapped currencies. Registration of .veth IDs will be priced at a level to prevent misuse and support bridge liquidity, with all fees besides the 1 VRSC import fee, which goes into the mining and staking fee pool going to the bridge converter liquidity basket.

All of these features are currently enabled on the v0.9.2 new testnet. Stay connected on the #pbaas-development channel and participate in the launch at no actual cost as a testnet liquidity provider and get some nice testnet IDs, launch your own currencies, or start your exclusive ID-restricted club, governance group, or business.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Creating an identity with a fractional currency as its parent

registernamecommitment now takes two more positional arguments to specify a currency parent and a funding address. Use quotes "" to leave fields blank, the example below specifies a parent currency, vrsc-btc , but no referrer. We're now able to use z_addresses to fund the name commitment and identity registration

# verus -chain=vrsctest registernamecommitment name controladdress referral parent sourceoffunds
verus -chain=vrsctest registernamecommitment subID RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr "" vrsc-btc zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

Specify the parent in the identity definition. Enter false for returntx to sign and submit the id registration, 0 for the feeoffer to use the default fee, and the funding identity, transparent address, or z-address

# verus -chain=vrsctest registeridentity '{ID registration with name commitment}' returntx feeoffer sourceoffunds

verus -chain=vrsctest registeridentity '{"txid": "67635331cbccb7a2cbf408a9e97b3f8986133964e0315a8b9fd237a5fd95ac8f","namereservation": { "version": 1,  "name": "ID",  "parent": "i84mndBk2Znydpgm9T9pTjVvBnHkhErzLt", "salt": "b7070f2ca7495e49c85ab41b5a368150e2c217be6d08cc4102a1b682cddb6f01", "referral": ""},"identity":{"primaryaddresses":["RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr"],"minimumsignatures":1,"name":"ID","parent":"vrsc-btc@"}}' false 0 zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

If a currency's ID issuance require permission from the currency's identity then it must sign the name commitment and identity registration. Either use the parent identity to fund those transactions, or receive a raw transaction to give the identity owner to sign by setting returntx to true

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/8c8c5240270807e16e8975032f3de5853daaddc76ff667af279ef7df05418082/detection
Linux-x86-64: https://www.virustotal.com/gui/file/28b726f52f306e6c86e04563dbe7d385d3021d8acb2e0be1d586416b9d83a0f5/detection
Linux-ARM64: https://www.virustotal.com/gui/file/5908d9acfd3b6d2f65071dd650732f7f38f96ab9e822d90676a3f7f561821c57/detection
Windows:
https://www.virustotal.com/gui/file/0168e46dc9edeb65af91fe5f8842516800c60f2ea793f7cef695232c8bdcaba7/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AQn/HgABQR8IlODV3COH5wvsCidoZiBgBc+riVxS4jgdH4WlfJ5TnU03J9UhgJNhNG3VmqpyfNO53JIFGuYXHjEAgagdeYnO /Downloads/Verus-CLI-Linux-v0.9.2-2-x86_64/Verus-CLI-Linux-v0.9.2-2-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AQn/HgABQR8IlODV3COH5wvsCidoZiBgBc+riVxS4jgdH4WlfJ5TnU03J9UhgJNhNG3VmqpyfNO53JIFGuYXHjEAgagdeYnO 4758a04c8d9923cb7cd784cb2f91dcbcc2c38a5f95312406c097ff5b8ba30dc9

The result will be true if the signature is valid.

true
34c2fb5
Compare
Choose a tag to compare

Announcing v0.9.2-1, NO FUNCTIONAL CHANGES TO MAINNET FROM v0.9.2 -- CRITICAL FOR TESTNET USE

This update fixes an error in creating transactions for sub identity registrations on fractional reserve currencies and it fixes a synchronization issue that could prevent some clients from fully syncing testnet. The rest of these release notes are the same as the prior version.

v0.9.2 RESETS TESTNET AND ADDS A COMPLETE SET OF NEW CAPABILITIES PREVIOUSLY CONSIDERED STRETCH GOALS THAT ENABLE BRANDED SUB-ID ISSUANCE WITH BOTH DECENTRALIZED AND CENTRALIZED OPTIONS AS WELL AS THE FIRST DISRUPTIVE TECHNOLOGY TO SOLVE FOR BRANDED LOYALTY IDENTITIES WITH NOVEL SOLUTIONS FOR ROYALTY AND IP LICENSING BUSINESS MODELS.

IF YOU HAVE ALREADY USED TESTNET WITH VERSIONS PRIOR TO v0.9.2, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

FOR MAINNET (AND TESTNET), v0.9.2 PROVIDES ENHANCED PRIVACY FEATURES FOR IDENTITY CREATION

PROTOCOL FEATURE COMPLETE

With v0.9.2, The Verus network, public blockchains as a service (PBaaS), VerusID extensions, and Verus DeFi protocols are considered feature complete for the coming mainnet PBaaS upgrade. The core developer focus now is protocol hardening and enabling usage first, followed by user experience upgrades and supporting infrastructure such as identity and login support for lite mode, mobile and web extension wallets as well as merge mining for pool servers.

NEW 3D CROSS-CHAIN LIQUIDITY NETWORK VISUALIZER (GUI FOR TESTNET)

In v0.9.2 Verus Desktop, there is a new 3-dimensional cross-chain network visualizer, which shows all currency conversion and fractional network connections both on chain and cross-chain, with the ability to move around and zoom in and out in 3 dimensions. To access the visualizer, click on “Visualize Network” on the Metaverse tab of Verus Desktop. If you’re interested in seeing the visualizer now, here’s a link directly to the visualizer as part of a recent video members of the community helped make (https://youtu.be/CkgUVjx_g1M?t=43).

NEW PBAAS CAPABILITIES

All PBaaS capabilities, including for application development, are available now on the new Verus testnet. Our goal for interoperability on this new testnet is to launch the Ethereum/Rinkeby bridge in the next couple days. Now would be a good time for development capable projects hoping to get a head start on using Verus’s transformative technologies to do a deep dive on the Verus testnet. These new capabilities in v0.9.2, as well as all those we are familiar with, available nowhere else, will be on mainnet SOON(™):

All fractional and centralized {“proofprotocol”:2} currencies can now issue as a decentralized operation, or with centralized currencies, sell, IDs using their own currency as the payment currency, with options for price, referrals, permission from the currency identity required, which means the transaction must be created or co-signed by the currency identity, or even referrals required, which means that an identity registration must have a referral and co-signature of a referring ID that is either the currency ID or another ID from that currency namespace.
For fully decentralized fractional currencies, ID registration is paid for by burning the specific fractional currency, reducing the supply, and raising the on-chain value of the primary currency relative to its reserves by reducing the current on-chain supply for everyone.
The minimum price of ID registration for fractional currencies can be set in either the fractional currency itself, or in one of its reserves, for example USDC or DAI.
More than the minimum price can be paid for ID registration, which may also include VDXF key and contract bindings to allow for multiple types of content or IP licensing in a single ID namespace.
Each currency, either centralized and/or fractional, can have multiple levels of referral support (limit of 5 levels), meaning that the ID registration fee will be reduced when referred and part of it will be divided evenly among past referrers. The remaining amount of the ID registration fee will be burned for decentralized currencies, or be sent to the currency ID for centralized currencies.

While Native IDs, those registered directly from a blockchain as the name parent, will be able to launch currencies on that blockchain, and if on Verus, actual independent blockchains, IDs issued by fractional or centralized currencies cannot launch currencies, but will still be valuable as revocation and recovery IDs for all other VerusIDs as well as for personalized on-chain and cross-chain addresses with all identity and NFT features, for proofs, for brands, contract binding, on-chain marketplace trading, or login, and will have the ability to cross-prove common ownership with other IDs as well.

The exception to non-native IDs creating currencies, is that *.veth gateway IDs will be available for decentralized registration from the Ethereum bridge converter and will be able to create Ethereum mapped currencies. Registration of .veth IDs will be priced at a level to prevent misuse and support bridge liquidity, with all fees besides the 1 VRSC import fee, which goes into the mining and staking fee pool going to the bridge converter liquidity basket.

All of these features are currently enabled on the v0.9.2 new testnet. Stay connected on the #pbaas-development channel and participate in the launch at no actual cost as a testnet liquidity provider and get some nice testnet IDs, launch your own currencies, or start your exclusive ID-restricted club, governance group, or business.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Creating an identity with a fractional currency as its parent

registernamecommitment now takes two more positional arguments to specify a currency parent and a funding address. Use quotes "" to leave fields blank, the example below specifies a parent currency, vrsc-btc , but no referrer. We're now able to use z_addresses to fund the name commitment and identity registration

# verus -chain=vrsctest registernamecommitment name controladdress referral parent sourceoffunds
verus -chain=vrsctest registernamecommitment subID RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr "" vrsc-btc zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

Specify the parent in the identity definition. Enter false for returntx to sign and submit the id registration, 0 for the feeoffer to use the default fee, and the funding identity, transparent address, or z-address

# verus -chain=vrsctest registeridentity '{ID registration with name commitment}' returntx feeoffer sourceoffunds

verus -chain=vrsctest registeridentity '{"txid": "67635331cbccb7a2cbf408a9e97b3f8986133964e0315a8b9fd237a5fd95ac8f","namereservation": { "version": 1,  "name": "ID",  "parent": "i84mndBk2Znydpgm9T9pTjVvBnHkhErzLt", "salt": "b7070f2ca7495e49c85ab41b5a368150e2c217be6d08cc4102a1b682cddb6f01", "referral": ""},"identity":{"primaryaddresses":["RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr"],"minimumsignatures":1,"name":"ID","parent":"vrsc-btc@"}}' false 0 zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

If a currency's ID issuance require permission from the currency's identity then it must sign the name commitment and identity registration. Either use the parent identity to fund those transactions, or receive a raw transaction to give the identity owner to sign by setting returntx to true

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/b236e84af64c14fe576ad82370faec59dc3e2ba1df6a587fc3317560491be602/detection
Linux-x86-64: https://www.virustotal.com/gui/file/13594d432962e107130ab4dccda0241456b1d94b4116232825fe2bf254415981/detection
Linux-ARM64: https://www.virustotal.com/gui/file/ab1f35048024838bc61627051a6bcd908df02b16327f4c177a31c47d536e1f2b/detection
Windows:
https://www.virustotal.com/gui/file/bcd62e56dce40060a333e81bd2ce2ee87bfb9e41fa1494e0779924e29b5800f8/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AYi7HgABQR/3O5kb1Dyxwwt1tNJL6s7LU9W/griFa/zzeUechZJSaRFsVSYN9btmznD3zfEAoCnDDQiD2OoB2MwmrdhgDSJI /Downloads/Verus-CLI-Linux-v0.9.2-1-x86_64/Verus-CLI-Linux-v0.9.2-1-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AYi7HgABQR/3O5kb1Dyxwwt1tNJL6s7LU9W/griFa/zzeUechZJSaRFsVSYN9btmznD3zfEAoCnDDQiD2OoB2MwmrdhgDSJI 60c686897e4d29a2d73f31f84e01670c6ca912f0b1e6ed9124eae479ad8bd292

The result will be true if the signature is valid.

true
5c91a86
Compare
Choose a tag to compare

Announcing v0.9.2, OPTIONAL, HIGHLY RECOMMENDED FOR MAINNET, MANDATORY FOR TESTNET USE - THIS IS A BIG ANNOUNCE, BUT IF YOU CARE ABOUT THE PBAAS UPGRADE, WE RECOMMEND READING IT ALL.

v0.9.2 RESETS TESTNET AND ADDS A COMPLETE SET OF NEW CAPABILITIES PREVIOUSLY CONSIDERED STRETCH GOALS THAT ENABLE BRANDED SUB-ID ISSUANCE WITH BOTH DECENTRALIZED AND CENTRALIZED OPTIONS AS WELL AS THE FIRST DISRUPTIVE TECHNOLOGY TO SOLVE FOR BRANDED LOYALTY IDENTITIES WITH NOVEL SOLUTIONS FOR ROYALTY AND IP LICENSING BUSINESS MODELS.

IF YOU HAVE ALREADY USED TESTNET WITH VERSIONS PRIOR TO v0.9.2, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

FOR MAINNET (AND TESTNET), v0.9.2 PROVIDES ENHANCED PRIVACY FEATURES FOR IDENTITY CREATION

PROTOCOL FEATURE COMPLETE

With v0.9.2, The Verus network, public blockchains as a service (PBaaS), VerusID extensions, and Verus DeFi protocols are considered feature complete for the coming mainnet PBaaS upgrade. The core developer focus now is protocol hardening and enabling usage first, followed by user experience upgrades and supporting infrastructure such as identity and login support for lite mode, mobile and web extension wallets as well as merge mining for pool servers.

NEW 3D CROSS-CHAIN LIQUIDITY NETWORK VISUALIZER (GUI FOR TESTNET)

In v0.9.2 Verus Desktop, there is a new 3-dimensional cross-chain network visualizer, which shows all currency conversion and fractional network connections both on chain and cross-chain, with the ability to move around and zoom in and out in 3 dimensions. To access the visualizer, click on “Visualize Network” on the Metaverse tab of Verus Desktop. If you’re interested in seeing the visualizer now, here’s a link directly to the visualizer as part of a recent video members of the community helped make (https://youtu.be/CkgUVjx_g1M?t=43).

NEW PBAAS CAPABILITIES

All PBaaS capabilities, including for application development, are available now on the new Verus testnet. Our goal for interoperability on this new testnet is to launch the Ethereum/Rinkeby bridge in the next couple days. Now would be a good time for development capable projects hoping to get a head start on using Verus’s transformative technologies to do a deep dive on the Verus testnet. These new capabilities in v0.9.2, as well as all those we are familiar with, available nowhere else, will be on mainnet SOON(™):

All fractional and centralized {“proofprotocol”:2} currencies can now issue as a decentralized operation, or with centralized currencies, sell, IDs using their own currency as the payment currency, with options for price, referrals, permission from the currency identity required, which means the transaction must be created or co-signed by the currency identity, or even referrals required, which means that an identity registration must have a referral and co-signature of a referring ID that is either the currency ID or another ID from that currency namespace.
For fully decentralized fractional currencies, ID registration is paid for by burning the specific fractional currency, reducing the supply, and raising the on-chain value of the primary currency relative to its reserves by reducing the current on-chain supply for everyone.
The minimum price of ID registration for fractional currencies can be set in either the fractional currency itself, or in one of its reserves, for example USDC or DAI.
More than the minimum price can be paid for ID registration, which may also include VDXF key and contract bindings to allow for multiple types of content or IP licensing in a single ID namespace.
Each currency, either centralized and/or fractional, can have multiple levels of referral support (limit of 5 levels), meaning that the ID registration fee will be reduced when referred and part of it will be divided evenly among past referrers. The remaining amount of the ID registration fee will be burned for decentralized currencies, or be sent to the currency ID for centralized currencies.

While Native IDs, those registered directly from a blockchain as the name parent, will be able to launch currencies on that blockchain, and if on Verus, actual independent blockchains, IDs issued by fractional or centralized currencies cannot launch currencies, but will still be valuable as revocation and recovery IDs for all other VerusIDs as well as for personalized on-chain and cross-chain addresses with all identity and NFT features, for proofs, for brands, contract binding, on-chain marketplace trading, or login, and will have the ability to cross-prove common ownership with other IDs as well.

The exception to non-native IDs creating currencies, is that *.veth gateway IDs will be available for decentralized registration from the Ethereum bridge converter and will be able to create Ethereum mapped currencies. Registration of .veth IDs will be priced at a level to prevent misuse and support bridge liquidity, with all fees besides the 1 VRSC import fee, which goes into the mining and staking fee pool going to the bridge converter liquidity basket.

All of these features are currently enabled on the v0.9.2 new testnet. Stay connected on the #pbaas-development channel and participate in the launch at no actual cost as a testnet liquidity provider and get some nice testnet IDs, launch your own currencies, or start your exclusive ID-restricted club, governance group, or business.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Creating an identity with a fractional currency as its parent

registernamecommitment now takes two more positional arguments to specify a currency parent and a funding address. Use quotes "" to leave fields blank, the example below specifies a parent currency, vrsc-btc , but no referrer. We're now able to use z_addresses to fund the name commitment and identity registration

# verus -chain=vrsctest registernamecommitment name controladdress referral parent sourceoffunds
verus -chain=vrsctest registernamecommitment subID RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr "" vrsc-btc zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

Specify the parent in the identity definition. Enter false for returntx to sign and submit the id registration, 0 for the feeoffer to use the default fee, and the funding identity, transparent address, or z-address

# verus -chain=vrsctest registeridentity '{ID registration with name commitment}' returntx feeoffer sourceoffunds

verus -chain=vrsctest registeridentity '{"txid": "67635331cbccb7a2cbf408a9e97b3f8986133964e0315a8b9fd237a5fd95ac8f","namereservation": { "version": 1,  "name": "ID",  "parent": "i84mndBk2Znydpgm9T9pTjVvBnHkhErzLt", "salt": "b7070f2ca7495e49c85ab41b5a368150e2c217be6d08cc4102a1b682cddb6f01", "referral": ""},"identity":{"primaryaddresses":["RDnf7mH7RQki9b7PqdBD2Er6WXv3DTawGr"],"minimumsignatures":1,"name":"ID","parent":"vrsc-btc@"}}' false 0 zs1s2mteau9tcalvk55cnepw3aq7dr6w7f447pqqkxczat3a02208d3ersx60wz9srw3nkd25ppfny

If a currency's ID issuance require permission from the currency's identity then it must sign the name commitment and identity registration. Either use the parent identity to fund those transactions, or receive a raw transaction to give the identity owner to sign by setting returntx to true

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/a70cd7e14f4b43a0c0123fb938881ccc7900396ce14057e4887986c591a2d506/detection
Linux-x86-64: https://www.virustotal.com/gui/file/26af0cebea1b579b1e7d55c3fcd927a2da1d58c4b3d4461e7039858f3f12f0f5/detection
Linux-ARM64: https://www.virustotal.com/gui/file/ef820935c721c11b0843e7925be5ba56b77937030028ca4ccab038c3117571a1/detection
Windows:
https://www.virustotal.com/gui/file/9c9d63e43e93b6c2b86a1ef2c70d62c92c9b280fa86a1c7c091b4053f48300a5/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AXKyHgABQSAZDjfHQ0HpRG4ORdPljczZMSDrmKVHLHy9YCAiy2wQOgW2wfl8+qJ3BbL3A4pyGyS0WDUTI7CN7LZNGxjHd47Z /Downloads/Verus-CLI-Linux-v0.9.2-x86_64/Verus-CLI-Linux-v0.9.2-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AXKyHgABQSAZDjfHQ0HpRG4ORdPljczZMSDrmKVHLHy9YCAiy2wQOgW2wfl8+qJ3BbL3A4pyGyS0WDUTI7CN7LZNGxjHd47Z 5add9cc3221ca69772a6f256036f72b14cc3652c53c15710511bdac7a533de5a

The result will be true if the signature is valid.

true
6c5c68b
Compare
Choose a tag to compare

ANNOUNCING PBAAS TESTNET UPGRADE v0.9.1-2, OPTIONAL FOR MAINNET USERS -- MANDATORY FOR TESTNET USERS

v0.9.1-2 RESETS TESTNET -- THERE ARE NO MAINNET CHANGES

IF YOU HAVE ALREADY USED TESTNET WITH VERSIONS PRIOR TO v0.9.1-2, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

Testnet Featuring Verus PBaaS

The most powerful and interoperable currency, blockchain, and ERC20 launch, scale, and MEV-resistant DeFi platform to exist, all with no programming required!

Verus PBaaS Features Live on v0.9.1-2 Testnet

  • Provable or pseudonymous, identity-based currency, liquidity pool, NFT and multi-blockchain, fully decentralized network.
  • On-chain 100% decentralized, launches with fair launch and/or crowdfunding options, on-chain auto-refund option for missed targets, automatic Ethereum ERC20 contract deployment, auto-created, MEV-resistant, liquidity baskets and even auto-bridged, merge mineable, fully independent rent-free PBaaS blockchain launches.
  • All DeFi AMM conversions are verified via mining and staking as part of the L1 consensus protocol. All conversions in a single liquidity basket are calculated simultaneously for all transactions in any given block, meaning all participants get the same price in all directions of conversion, with a minimum conversion fee of 0.025% and a maximum of 0.05%.
  • All currencies and identities are primitives at L1 and are validated and verified on UTXO transactions, which check all inputs and outputs just as single currency L1, such as Ethereum or Bitcoin check the native currency inputs and outputs of transactions.
  • All currencies on all independent connected chains, once launched can be sent back and forth to other multi-currency capable networks (currently other independent PBaaS chains and Ethereum as ERC20s).
  • Currencies on Verus can also be defined as "mapped currencies", which map 1:1 to an existing currency on Ethereum (eg. DAI), and can then be sent from Ethereum with simple transactions and received and used as the new "mapped currency", or sent back to Ethereum and used there as the original currency.
  • Currency launches can raise funds in 3 ways. Each of these fundraising options creates a currency that is not 100% backed, and has a price that responds to market forces. 100% backed currencies do not change their relative price to the underlying basket reserve when they are converted to or from reserves. Fractionally backed currencies, which result from fundraising or endowing launch grants/pre-allocations to DAOs or entities such as foundations, whether time-locked or not, take their funding from a percentage of the reserve backing. Except in the case of a new blockchain launch, which creates new native currency for operating the proof of stake of the blockchain, any currency that uses fundraising options will be a fractionally backed currency which will appreciate when more people convert to it and depreciate when more convert from it. If a launch is refunded due to minimum participation options that are not met, no fundraising is received:
    • Pre-launch discount - all participants contributing to the launch before it goes live on its start block get a discount to the initial on-chain price of the currency. This is usually accompanied by a maximum cap on pre-conversion participation to ensure that the currency would still be in demand when it goes live.
  • Pre-launch carve-out - this enables a percentage of each of the initial participation currencies to be carved out of the launch and total reserve ratio in a price neutral manner and sent directly to the launching identity upon successful launch.
  • Pre-allocation - this enables some of the newly launched currency to be pre-allocated to one or more identities. If the currency is fractional, this happens in a price neutral manner, and again is subtracted from the reserve ratio. Recipients can optionally be time locked IDs for vesting or unlock periods.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/c0989e59ecee58bb1936d0cbe4f171a9b97b679730bccfae372e59575f8d9bff/detection
Linux-x86-64: https://www.virustotal.com/gui/file/0cbecd05a8dca2f73f959e35206b8d07711ac9c27e9c26afc2605ca315ef825b/detection
Linux-ARM64: https://www.virustotal.com/gui/file/c6f262bc03d0add6e8f593f455c661b8eafb7ad4d2ee94c13d2796226f4c4a58/detection
Windows:
https://www.virustotal.com/gui/file/386f6dfd78419d45412a94d7c1b293a0bbd12749cd9debf62e8196ea2cc0c762/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AYrcHQABQSBCgRc2BNPaD7R7lXD3BRfwV2dHQ7yyJ1qB/ZDX03Jk5VoHZdMG5c/V/j1rZCVfXWQm66momTr4Ee05L+mfjf9l /Downloads/Verus-CLI-Linux-v0.9.1-2-x86_64/Verus-CLI-Linux-v0.9.1-2-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AYrcHQABQSBCgRc2BNPaD7R7lXD3BRfwV2dHQ7yyJ1qB/ZDX03Jk5VoHZdMG5c/V/j1rZCVfXWQm66momTr4Ee05L+mfjf9l 1f9e4144c48e0df53778c0a0af2dcbde57f95dd119c2348fbe3343fb4500da38

The result will be true if the signature is valid.

true
81dac44
Compare
Choose a tag to compare

ANNOUNCING MAINNET AND PBAAS TESTNET UPGRADE v0.9.1-1

CRITICAL FOR NOTARIES, POOLS, EXCHANGES, MANDATORY FOR TESTNET USERS, HIGHLY RECOMMENDED FOR ALL MAINNET USERS

v0.9.1-1 includes testnet fixes for the Ethereum bridge launch with advanced features, addresses all known issues on testnet, and includes sync improvements for testnet and mainnet.

Testnet Featuring Verus PBaaS

The most powerful and interoperable currency, blockchain, and ERC20 launch, scale, and MEV-resistant DeFi platform to exist, all with no programming required!

IF YOU HAVE ALREADY USED TESTNET WITH VERSIONS PRIOR TO v0.9.1, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

Verus PBaaS Features Live on v0.9.1-1 Testnet

  • Provable or pseudonymous, identity-based currency, liquidity pool, NFT and multi-blockchain, fully decentralized network.
  • On-chain 100% decentralized, launches with fair launch and/or crowdfunding options, on-chain auto-refund option for missed targets, automatic Ethereum ERC20 contract deployment, auto-created, MEV-resistant, liquidity baskets and even auto-bridged, merge mineable, fully independent rent-free PBaaS blockchain launches.
  • All DeFi AMM conversions are verified via mining and staking as part of the L1 consensus protocol. All conversions in a single liquidity basket are calculated simultaneously for all transactions in any given block, meaning all participants get the same price in all directions of conversion, with a minimum conversion fee of 0.025% and a maximum of 0.05%.
  • All currencies and identities are primitives at L1 and are validated and verified on UTXO transactions, which check all inputs and outputs just as single currency L1, such as Ethereum or Bitcoin check the native currency inputs and outputs of transactions.
  • All currencies on all independent connected chains, once launched can be sent back and forth to other multi-currency capable networks (currently other independent PBaaS chains and Ethereum as ERC20s).
  • Currencies on Verus can also be defined as "mapped currencies", which map 1:1 to an existing currency on Ethereum (eg. DAI), and can then be sent from Ethereum with simple transactions and received and used as the new "mapped currency", or sent back to Ethereum and used there as the original currency.
  • Currency launches can raise funds in 3 ways. Each of these fundraising options creates a currency that is not 100% backed, and has a price that responds to market forces. 100% backed currencies do not change their relative price to the underlying basket reserve when they are converted to or from reserves. Fractionally backed currencies, which result from fundraising or endowing launch grants/pre-allocations to DAOs or entities such as foundations, whether time-locked or not, take their funding from a percentage of the reserve backing. Except in the case of a new blockchain launch, which creates new native currency for operating the proof of stake of the blockchain, any currency that uses fundraising options will be a fractionally backed currency which will appreciate when more people convert to it and depreciate when more convert from it. If a launch is refunded due to minimum participation options that are not met, no fundraising is received:
    • Pre-launch discount - all participants contributing to the launch before it goes live on its start block get a discount to the initial on-chain price of the currency. This is usually accompanied by a maximum cap on pre-conversion participation to ensure that the currency would still be in demand when it goes live.
  • Pre-launch carve-out - this enables a percentage of each of the initial participation currencies to be carved out of the launch and total reserve ratio in a price neutral manner and sent directly to the launching identity upon successful launch.
  • Pre-allocation - this enables some of the newly launched currency to be pre-allocated to one or more identities. If the currency is fractional, this happens in a price neutral manner, and again is subtracted from the reserve ratio. Recipients can optionally be time locked IDs for vesting or unlock periods.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/cf645e9513dfcbd8e2e43eb330bb9090e91fd8f33a9521a86a75f90ff998ecc1/detection
Linux-x86-64: https://www.virustotal.com/gui/file/0ce97d7a308077827cea5dbfc37f48dc6d253ff5f0924db4d58abaf4068cd22e/detection
Linux-ARM64: https://www.virustotal.com/gui/file/0088ad441a3bed5a134d1fbf5752f8ffed31bfd226bf5142e4c41ec02e2bb46f/detection
Windows:
https://www.virustotal.com/gui/file/fc110cfa3ab9eab71b7661628d9d0dc4fcfdb450801c41e81576a99e35244a5e/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AU+tHQABQR+/ObpwL0kRP/cIf4PvNMa/GBJa2f82LrGDGF8S45GHOlfZwHM7kL5X0Qst+1IVD8O1adW8TeAlqZY6EIOh0Q5/ /Downloads/Verus-CLI-Linux-v0.9.1-1-x86_64/Verus-CLI-Linux-v0.9.1-1-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AU+tHQABQR+/ObpwL0kRP/cIf4PvNMa/GBJa2f82LrGDGF8S45GHOlfZwHM7kL5X0Qst+1IVD8O1adW8TeAlqZY6EIOh0Q5/ 62819af68f302a39a02fe17ab3b917f4c51f6286e67dc3966718fe059299ff6c

The result will be true if the signature is valid.

true
623c69f
Compare
Choose a tag to compare

ANNOUNCING NON-MANDATORY, RECOMMENDED FOR MAINNET, MANDATORY FOR TESTNET PBAAS UPGRADE v0.9.1

Testnet Featuring Verus PBaaS -- The most powerful and interoperable currency, blockchain, and ERC20 launch, scale, and MEV-resistant DeFi platform to exist, all with no programming required!

v0.9.1 improves mainnet bootstrap and GUI backup/restore user experience but does not upgrade mainnet protocols and is not a required update for mainnet-only users. It is required to use the public testnet. IF YOU HAVE ALREADY USED TESTNET WITH PRIOR VERSIONS, MAKE SURE TO DELETE AND CLEAR ANY EXISTING TESTNET DATA FOLDERS AS DESCRIBED BELOW.

Verus PBaaS Features Live on v0.9.1 Testnet

  • Provable or pseudonymous, identity-based currency, liquidity pool, NFT and multi-blockchain, fully decentralized network.
  • On-chain 100% decentralized, launches with fair launch and/or crowdfunding options, on-chain auto-refund option for missed targets, automatic Ethereum ERC20 contract deployment, auto-created, MEV-resistant, liquidity baskets and even auto-bridged, merge mineable, fully independent rent-free PBaaS blockchain launches.
  • All DeFi AMM conversions are verified via mining and staking as part of the L1 consensus protocol. All conversions in a single liquidity basket are calculated simultaneously for all transactions in any given block, meaning all participants get the same price in all directions of conversion, with a minimum conversion fee of 0.025% and a maximum of 0.05%.
  • All currencies and identities are primitives at L1 and are validated and verified on UTXO transactions, which check all inputs and outputs just as single currency L1, such as Ethereum or Bitcoin check the native currency inputs and outputs of transactions.
  • All currencies on all independent connected chains, once launched can be sent back and forth to other multi-currency capable networks (currently other independent PBaaS chains and Ethereum as ERC20s).
  • Currencies on Verus can also be defined as "mapped currencies", which map 1:1 to an existing currency on Ethereum (eg. DAI), and can then be sent from Ethereum with simple transactions and received and used as the new "mapped currency", or sent back to Ethereum and used there as the original currency.
  • Currency launches can raise funds in 3 ways. Each of these fundraising options creates a currency that is not 100% backed, and has a price that responds to market forces. 100% backed currencies do not change their relative price to the underlying basket reserve when they are converted to or from reserves. Fractionally backed currencies, which result from fundraising or endowing launch grants/pre-allocations to DAOs or entities such as foundations, whether time-locked or not, take their funding from a percentage of the reserve backing. Except in the case of a new blockchain launch, which creates new native currency for operating the proof of stake of the blockchain, any currency that uses fundraising options will be a fractionally backed currency which will appreciate when more people convert to it and depreciate when more convert from it. If a launch is refunded due to minimum participation options that are not met, no fundraising is received:
    • Pre-launch discount - all participants contributing to the launch before it goes live on its start block get a discount to the initial on-chain price of the currency. This is usually accompanied by a maximum cap on pre-conversion participation to ensure that the currency would still be in demand when it goes live.
  • Pre-launch carve-out - this enables a percentage of each of the initial participation currencies to be carved out of the launch and total reserve ratio in a price neutral manner and sent directly to the launching identity upon successful launch.
  • Pre-allocation - this enables some of the newly launched currency to be pre-allocated to one or more identities. If the currency is fractional, this happens in a price neutral manner, and again is subtracted from the reserve ratio. Recipients can optionally be time locked IDs for vesting or unlock periods.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Additional Verus Capabilities

  • On-chain Launches of Token, Centralized Currency, and Liquidity Basket AMMs
  • On-chain Launches and Merge Mining of Independent, Connected, Interoperable Blockchains without Programming
  • On-chain Self Sovereign, Provable Identities, NFTs, and Individual or Organizational Profiles

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
verus -chain=VRSCTEST getcurrencyconverters btc eth

Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]'
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
  • Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
  • Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
  • Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

Currency Options

OPTION_FRACTIONAL = 1              // allows reserve conversion using base calculations when set
OPTION_ID_ISSUANCE = 2             // clear is permissionless, if set, IDs may only be created by controlling ID
OPTION_ID_STAKING = 4              // all IDs on chain stake equally, rather than value-based staking
OPTION_ID_REFERRALS = 8            // if set, this chain supports referrals
OPTION_ID_REFERRALREQUIRED = 16  // if set, this chain requires referrals
OPTION_TOKEN = 32                // if set, this is a token, not a native currency
OPTION_SINGLECURRENCY = 64       // for PBaaS chains or gateways to potentially restrict to single currency
OPTION_GATEWAY = 128              // if set, this routes external currencies
OPTION_PBAAS = 256               // this is a PBaaS chain definition
OPTION_PBAAS_CONVERTER = 512     // this means that for a specific PBaaS gateway, this is the default converter and will publish prices

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":32,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":33, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":20000'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

  {
    "name": "PBaaSChain",
    "options": 264,
    "currencies": [
      "VRSCTEST"
    ],
    "conversions": [
      1
    ],
    "eras": [
      {
        "reward": 1200000000,
        "decay": 0,
        "halving": 0,
        "eraend": 0
      }
    ],
    "notaries": [
      "Notary1@",
      "Notary2@",
      "Notary3@",
    ],
    "minnotariesconfirm": 2,
    "nodes": [
      {
        "networkaddress": "111.111.111.111:10000",
        "nodeidentity": "Node1@"
      },
      {
        "networkaddress": "111.111.111.112:10000",
        "nodeidentity": "Node2@"
      }
    ],
    "gatewayconvertername": "Bridge",
    "gatewayconverterissuance": 1000000
  }

The bridge definition has overridable defaults

  {
    "currencies": [
      "VRSCTEST",
      "PBaaSChain",
      "USD"
    ],
    "initialcontributions": [
      380228.12033701,
      0,
      1000000
    ],
    "initialsupply": 3000000
  }

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":264,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/3c6ec8e701fdbfc966ae7e4606898aebd4f32538ef97ad32a94b723731becdf0/detection
Linux-x86-64: https://www.virustotal.com/gui/file/ed0d96a02e617a4d5aaa3a396dd28d9b2378e7377ef9236c31946bb4afea5a3e/detection
Linux-ARM64: https://www.virustotal.com/gui/file/29289f0bb1c6a83b6a0a323ed867c7bb3857a33ca189397728f49ad513ce6641/detection
Windows:
https://www.virustotal.com/gui/file/55b8df070559fc7e4010a1b9466b4c7cce529c464eee17627f8409eaf61ac623/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" ARh1HQABQSDoIbL907lmsx8IkKa0e3YT88VnW6KS47hnb5NbnegPSmVwVzx09t9/Y01Y1eJWMHMILnCgrF8hdGSi/75TBfvk /Downloads/Verus-CLI-Linux-v0.9.1-x86_64/Verus-CLI-Linux-v0.9.1-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" ARh1HQABQSDoIbL907lmsx8IkKa0e3YT88VnW6KS47hnb5NbnegPSmVwVzx09t9/Y01Y1eJWMHMILnCgrF8hdGSi/75TBfvk ca05b85e8124d1c8f8a781616ef48119bca64f746715361e4e44e88b3830b911

The result will be true if the signature is valid.

true
a2c4774
Compare
Choose a tag to compare

Announcing NON-MANDATORY, RECOMMENDED Verus v0.9.0-3. This release is considered non-mandatory but IS RECOMMENDED for mainnet users, Komodo notaries, and is recommended for testnet users to ensure the best experience with testnet.

This version fixes the following issues with v0.9.0-2

  • Adds GUI support for seeing, making, and taking offers for currency or identity trades on the VerusID tab and when searching for identities.
  • Fixes an issue where offers to buy or sell IDs were prematurely closed, even when expiry was set far in the future
  • Fixes an issue with setidentitytimelock that caused it to return an error in most cases
  • Ensures full rescanning of identities when using z_importwallet

New Command and API for Verus Vault - setidentitytimelock

v0.9.0-2 introduced a new command and RPC API, "setidentitytimelock". setidentitytimelock may be used to set a time unlock delay, set a lock until a specific block height, or unlock a delayed timelock on a VerusID under your control.

You can use setidentitytimelock in one of two ways:

verus setidentitytimelock '{"unlockatblock":1796500}' (returntx)

or

verus setidentitytimelock '{"setunlockdelay":1440}' (returntx)

or

verus setidentitytimelock '{"unlockatblock":0}' (returntx)

The first example will lock the ID until the block specified. If the block specified is in the past, the ID will not be locked.
The second example will set a 1440 block unlock delay, which will be needed to wait before spending funds controlled by the ID after unlocking the ID (about one day unlock time).
The third example will unlock an ID that has been locked with an unlock delay, and the unlock time will be set to the block height at which the ID was unlocked + the originally set unlock delay.

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
    verus -chain=VRSCTEST getcurrencyconverters btc eth
    
    Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
    verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]' 
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
    verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]' 
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
    verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]' 
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]' 
  • Preconverting to new currency, NEWCOIN, before it is active:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]' 
  • Sending VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]' 
  • Converting PBaaSChain to VRSCTEST:
    verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":96,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":97, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":[20000]'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

{
"name": "PBaaSChain",
"options": 330,
"currencies": [
"VRSCTEST"
],
"conversions": [
1
],
"eras": [
{
"reward": 1200000000,
"decay": 0,
"halving": 0,
"eraend": 0
}
],
"notaries": [
"Notary1@",
"Notary2@",
"Notary3@",
],
"minnotariesconfirm": 2,
"nodes": [
{
"networkaddress": "111.111.111.111:10000",
"nodeidentity": "Node1@"
},
{
  "networkaddress": "111.111.111.112:10000",
"nodeidentity": "Node2@"
}
],
"gatewayconvertername": "Bridge",
"gatewayconverterissuance": 1000000
}

The bridge definition has overridable defaults

{
"currencies": [
"VRSCTEST",
"PBaaSChain",
"USD"
],
"initialcontributions": [
380228.12033701,
0,
1000000
],
"initialsupply": 3000000
}

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":330,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/vrsctest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/vrsctest

Windows

"%APPDATA%"\Komodo\VRSCTEST

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/a373bb52686ec4bae4f77843e8c806179b6e20c40f1f4855ab7f76c70f9e962a/detection
Linux-x86-64: https://www.virustotal.com/gui/file/c77976b43222ddecbea829cf5805d6f5d0b062b52f3c7112bde5e51c94d6a5e0/detection
Linux-ARM64: https://www.virustotal.com/gui/file/31aad050a7f726ed359598d506805882ca48b16d0015a1d156c7b41a786bfa3b/detection
Windows:
https://www.virustotal.com/gui/file/bddd820126a27512872d9dd8c966fcf253fe46777288b452ce22e8dcc1352ef0/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AdJ2GwABQSCjCvnuaFl4Crj1vRK7s3gPAGa7u3OktJVrSY6NQoj002JK4IcK9xx0yQue/LK0Kg7H6L+h42BTTZb9+zeLgGVs /Downloads/Verus-CLI-Linux-v0.9.0-3-x86_64/Verus-CLI-Linux-v0.9.0-3-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AdJ2GwABQSCjCvnuaFl4Crj1vRK7s3gPAGa7u3OktJVrSY6NQoj002JK4IcK9xx0yQue/LK0Kg7H6L+h42BTTZb9+zeLgGVs fd58ff4f7f25a3eb2d48ce0b022c78162df66275c9f2257e071c5b97e9d94812

The result will be true if the signature is valid.

true
0c30a49
Compare
Choose a tag to compare

Announcing NON-MANDATORY, RECOMMENDED Verus v0.9.0-2. This release is considered non-mandatory but IS RECOMMENDED for mainnet users, Komodo notaries, and is mandatory for testnet users to ensure reliable connection to the current testnet.

TO REMAIN CONNECTED TO THE MAINNET VERUS BLOCKCHAIN, YOU MUST UPGRADE FULL NODES TO v0.9.0 OR LATER. IF YOU HAVE NOT UPDATED AND ATTEMPTED TO STAY CONNECT TO MAINNET, YOU MAY NEED TO BOOTSTRAP OR RESYNC YOUR NATIVE WALLET OR NODE AFTER UPGRADING.

New Command and API for Verus Vault - setidentitytimelock

v0.9.0-2 introduces a new command and RPC API, "setidentitytimelock". setidentitytimelock may be used to set a time unlock delay, set a lock until a specific block height, or unlock a delayed timelock on a VerusID under your control.

You can use setidentitytimelock in one of two ways:

verus setidentitytimelock '{"unlockatblock":1796500}' (returntx)

or

verus setidentitytimelock '{"setunlockdelay":1440}' (returntx)

or

verus setidentitytimelock '{"unlockatblock":0}' (returntx)

The first example will lock the ID until the block specified. If the block specified is in the past, the ID will not be locked.
The second example will set a 1440 block unlock delay, which will be needed to wait before spending funds controlled by the ID after unlocking the ID (about one day unlock time).
The third example will unlock an ID that has been locked with an unlock delay, and the unlock time will be set to the block height at which the ID was unlocked + the originally set unlock delay.

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyone with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
    verus -chain=VRSCTEST getcurrencyconverters btc eth
    
    Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
    verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]' 
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
    verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]' 
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
    verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]' 
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]' 
  • Preconverting to new currency, NEWCOIN, before it is active:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]' 
  • Sending VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]' 
  • Converting PBaaSChain to VRSCTEST:
    verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":96,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":97, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":[20000]'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

{
"name": "PBaaSChain",
"options": 330,
"currencies": [
"VRSCTEST"
],
"conversions": [
1
],
"eras": [
{
"reward": 1200000000,
"decay": 0,
"halving": 0,
"eraend": 0
}
],
"notaries": [
"Notary1@",
"Notary2@",
"Notary3@",
],
"minnotariesconfirm": 2,
"nodes": [
{
"networkaddress": "111.111.111.111:10000",
"nodeidentity": "Node1@"
},
{
  "networkaddress": "111.111.111.112:10000",
"nodeidentity": "Node2@"
}
],
"gatewayconvertername": "Bridge",
"gatewayconverterissuance": 1000000
}

The bridge definition has overridable defaults

{
"currencies": [
"VRSCTEST",
"PBaaSChain",
"USD"
],
"initialcontributions": [
380228.12033701,
0,
1000000
],
"initialsupply": 3000000
}

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":330,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/vrsctest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/vrsctest

Windows

"%APPDATA%"\Komodo\VRSCTEST

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/94d81f9760a29d0407620a6dc0cd78af0518a34898a56e70b20224e99c4f2cb7/detection
Linux-x86-64: https://www.virustotal.com/gui/file/d84eca262fb1b4a44901eb6a334924cd1ab8520d479bb46b2d3b213b1b628d9e/detection
Linux-ARM64: https://www.virustotal.com/gui/file/9e5a0b54b634b7dd4f389de51a67eacaa1c0317981b6aa05fad5e0f4c095e409/detection
Windows:
https://www.virustotal.com/gui/file/b0008b14b4273f76c23f0090b19d5dbbae08758cc78094c13b811e25ba4a51af/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AQVqGwABQR/OeunkOwu/sRpFtHBBU33MD6DkvkFnM8vpFTBmNQF1m3eAtOyetX0LuTcUxjuc1KMX/vj15Y54e0OSwzYWtLAA /Downloads/Verus-CLI-Linux-v0.9.0-2-x86_64/Verus-CLI-Linux-v0.9.0-2-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AQVqGwABQR/OeunkOwu/sRpFtHBBU33MD6DkvkFnM8vpFTBmNQF1m3eAtOyetX0LuTcUxjuc1KMX/vj15Y54e0OSwzYWtLAA c814ca39dae00ca2152ab01ed3bd6b4a10e5d0b10320677f08686fb15c9bd126

The result will be true if the signature is valid.

true
d0aecf8
Compare
Choose a tag to compare

Announcing NON-MANDATORY, RECOMMENDED Verus v0.9.0-1. This release is considered non-mandatory but IS RECOMMENDED for mainnet users, Komodo notaries, and is mandatory for testnet users to ensure reliable connection to the current testnet.

TO REMAIN CONNECTED TO THE MAINNET VERUS BLOCKCHAIN, YOU MUST UPGRADE FULL NODES TO v0.9.0 OR LATER BY BLOCK 1796400, which is expected to occur on or around Monday, November 29th at 6:15PM UTC.

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyoe with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
    verus -chain=VRSCTEST getcurrencyconverters btc eth
    
    Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
    verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]' 
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
    verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]' 
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
    verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]' 
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]' 
  • Preconverting to new currency, NEWCOIN, before it is active:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]' 
  • Sending VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]' 
  • Converting PBaaSChain to VRSCTEST:
    verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":96,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":97, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":[20000]'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

{
"name": "PBaaSChain",
"options": 330,
"currencies": [
"VRSCTEST"
],
"conversions": [
1
],
"eras": [
{
"reward": 1200000000,
"decay": 0,
"halving": 0,
"eraend": 0
}
],
"notaries": [
"Notary1@",
"Notary2@",
"Notary3@",
],
"minnotariesconfirm": 2,
"nodes": [
{
"networkaddress": "111.111.111.111:10000",
"nodeidentity": "Node1@"
},
{
  "networkaddress": "111.111.111.112:10000",
"nodeidentity": "Node2@"
}
],
"gatewayconvertername": "Bridge",
"gatewayconverterissuance": 1000000
}

The bridge definition has overridable defaults

{
"currencies": [
"VRSCTEST",
"PBaaSChain",
"USD"
],
"initialcontributions": [
380228.12033701,
0,
1000000
],
"initialsupply": 3000000
}

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":330,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/vrsctest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/vrsctest

Windows

"%APPDATA%"\Komodo\VRSCTEST

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/5b250aae5e5ae396a2ca74de8f59f3840098590a299c05cb26733e2d5a5b6cce/detection
Linux-x86-64: https://www.virustotal.com/gui/file/e8f4b9d83089e73d1f3e9e314c1d459f7fa3d28ee38cae6eaa3f17f2904be453/detection
Linux-ARM64: https://www.virustotal.com/gui/file/04c6d45b62873d4ff56103a07d85d0e0ffcf84416a434ce1c96e4e987132f88a/detection
Windows:
https://www.virustotal.com/gui/file/f9cc46ba66cd73424604fb7f596ff61f709527724d78252d283373e82c356ad4/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AXY1GwABQR+zDdT4vg66nRnK/0lvyxWRsHUf0tg6mAzJSv7a5BVrpzCjxnKr3zOPhxtrxpaNOU5duU4+69S/pqY7HSq4k6MJ /Downloads/Verus-CLI-Linux-v0.9.0-1-x86_64/Verus-CLI-Linux-v0.9.0-1-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AXY1GwABQR+zDdT4vg66nRnK/0lvyxWRsHUf0tg6mAzJSv7a5BVrpzCjxnKr3zOPhxtrxpaNOU5duU4+69S/pqY7HSq4k6MJ d2e5fc890f646773624c55797d2dd38bab35a2839ad208ec0b668d34b24b27d3

The result will be true if the signature is valid.

true
4c7a0a6
Compare
Choose a tag to compare

Announcing MANDATORY Verus v0.9.0 Mainnet Release of Verus Vault and the on-chain NFT and ID Marketplace

TO REMAIN CONNECTED TO THE MAINNET VERUS BLOCKCHAIN, YOU MUST UPGRADE FULL NODES TO v0.9.0 OR LATER BY BLOCK 1796400, which is expected to occur on or around Monday, November 29th at 6:15PM UTC.

Verus ID and NFT Marketplace

Buy and sell VerusIDs on-chain, advertising your offer directly to the owner of an ID or NFT, or posting the sale of your NFT on the worldwide blockchain for all the world to see. Execute transactions in a completely decentralized way. Pay or offer to pay from a transparent or zero-knowledge private address, still auditable by you. Accept payment to either as well, and best of all, execute your transactions directly, peer-to-peer without any intermediary necessary. Don’t worry the on-chain model still makes room for owners to select and share proceeds with value added agents, marketing organizations, or other participants in a new economy of provable digital ownership. It’s the next step in the evolution of VerusID, the most powerful self-sovereign identity and secure storage model for funds in the digital world.

Verus Vault

With Verus Vault you can now protect funds on a VerusID, even from theft of a private key! If you lock your VerusID with Vault you cannot spend funds from that identity at all until it is again unlocked. While locked, you can still stake those same funds on the Verus network and earn by doing so. Of course, you can also still receive funds.

IT IS IMPORTANT TO NOTE THAT ENABLING REVOCATION, RECOVERY, AND ALL VERUS VAULT CAPABILITIES REQUIRE YOU TO HAVE ONE PRIMARY IDENTITY, AND AT LEAST ONE REVOCATION/RECOVERY ID CONFIGURED.

A locked VerusID can always be revoked and recovered by its revocation and recovery authority identities, which circumvents the lock. At the same time, anyoe with only the primary keys, even a multisig of primary keys must first unlock, then wait for the predetermined unlock time before they can spend or access funds. This gives you, or maybe a company that specializes in watching the blockchain to whom you've assigned the revocation ID to revoke and recover whenever an unauthorized unlock occurs. That means that like a bank, setting a 24 hour unlock delay on your locked IDs actually provides the first decentralized solution to the infamous 5 dollar wrench attack.

In addition to a new level of blockchain protection and decentralized funds recovery, Verus Vault provides the same security for your IDs and NFTs as well as time locks for other purposes, such as vesting schedules, trusts, and inheritance. With Verus Vault, you can now protect and recover your funds, preserving all your assets and generational blockchain wealth from common forms of crypto loss or theft, no bank required.

Testnet Reset

To reset your testnet make sure Verus is closed (and no testnet daemon running) and delete the following directories, then restart the testnet daemon (or relaunch Verus Desktop, deactivate verustest and re-add verustest native):

  • Linux: ~/.Komodo/vrsctest, ~/.verustest
  • Mac OS: ~/Library/Application Support/Komodo/vrsctest, ~/Library/Application\ Support/VerusTest
  • Windows 10: %AppData%\Roaming\Komodo\vrsctest\, %AppData%\Roaming\VerusTest or %AppData%\Komodo\vrsctest\, %AppData%\Roaming\VerusTest

Exporting an ID to a PBaaS chain

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"IDNAME@","exportto":"PBaaSChainName","exportid":"true","amount":100,"currency":"vrsctest"}]'

Signing transactions from multi-signature IDs (testnet and mainnet)

Create transaction, get raw transaction data:

verus sendcurrency <multi-signature-ID>@ '[{"address":"<destination_address>","amount":<transaction_amount>}]'
verus z_getoperationstatus <operation_id_returned_by_sendcurrency>

Take the raw hex transaction data provided by z_getoperationstatus to each additional wallet(s) containing the additional signing addresses/IDs:

verus signrawtransaction <raw_hex_transaction>

After the last necessary signature is applied, broadcast on the network using:

verus sendrawtransaction <raw_hex_signed_transaction>

New Verus Multicurrency, Multichain, DeFi Enabled Testnet

With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.

The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.

As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.

The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.

Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID

  • Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.

Staking-capable time locking and theft prevention (Verus Vault)

  • Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.

Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming

  • Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.

Consensus integrated DeFi liquidity pools and fractional currency baskets

  • Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.

Simultaneous blockchain and blockchain liquidity pool launches

  • Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.

Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)

  • Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.

An interoperable, multichain network for new use cases and unlimited scale**

  • The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.

Locking and Unlocking IDs

  • Time Lock:
    The timelock parameter defines the unlock height of the identity.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Time Delay:
    The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.
    verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
    
  • Revoking an identity will clear its locked status, regardless of time delay or unlock height.
  • A locked identity cannot revoke itself.

Conversion Queries

The getcurrencyconverters API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves

  • E.g. BTC ETH:
    verus -chain=VRSCTEST getcurrencyconverters btc eth
    
    Will return all currencies that have btc/eth markets at or above the liquidity threshold.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.

  • Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):
    verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]' 
  • Sending VRSCTEST from all private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
    verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]' 
  • Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
    verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]' 
  • Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]' 
  • Preconverting to new currency, NEWCOIN, before it is active:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]' 
  • Sending VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
  • Converting VRSCTEST cross-chain to PBaaSChain:
    verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]' 
  • Converting PBaaSChain to VRSCTEST:
    verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'

Defining a Currency

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":96,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":97, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":[20000]'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Defining a PBaaS blockchain

{
"name": "PBaaSChain",
"options": 330,
"currencies": [
"VRSCTEST"
],
"conversions": [
1
],
"eras": [
{
"reward": 1200000000,
"decay": 0,
"halving": 0,
"eraend": 0
}
],
"notaries": [
"Notary1@",
"Notary2@",
"Notary3@",
],
"minnotariesconfirm": 2,
"nodes": [
{
"networkaddress": "111.111.111.111:10000",
"nodeidentity": "Node1@"
},
{
  "networkaddress": "111.111.111.112:10000",
"nodeidentity": "Node2@"
}
],
"gatewayconvertername": "Bridge",
"gatewayconverterissuance": 1000000
}

The bridge definition has overridable defaults

{
"currencies": [
"VRSCTEST",
"PBaaSChain",
"USD"
],
"initialcontributions": [
380228.12033701,
0,
1000000
],
"initialsupply": 3000000
}

Now pass those definitions to definecurrency

./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":330,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'

Limitations in multi-currency to be aware of:

  1. (GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.

  2. (GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/vrsctest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/vrsctest

Windows

"%APPDATA%"\Komodo\VRSCTEST

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/gui/file/66f08fb597b6e68d7c5f6c93ac444cfbaec2d03535a31f6d86d6f164d8a1bd05/detection
Linux-x86-64: https://www.virustotal.com/gui/file/697656f6243a66d2ba40cbef3028edbeccbe5c9b8222c36617ea89ed94b5b996/detection
Linux-ARM64: https://www.virustotal.com/gui/file/7bbe91e83713e57c391df8ab25e9ce95d24ede9605fdfbcd72a7d140419e5657/detection
Windows:
https://www.virustotal.com/gui/file/cf2e044ef9a061dbee93f12fc06c26342bbce6ea7cfa93ebed656de3d4ce3b99/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AeoZGwABQR9Qyoon3B6wDze32NWnzFLRIl5mTH+OqmWNNxvAPDB+8CUTYBVcMAfiMOT87yGhfr8gn4KrQmpTe1Mllm0yjQRu /Downloads/Verus-CLI-Linux-v0.9.0-x86_64/Verus-CLI-Linux-v0.9.0-x86_64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AeoZGwABQR9Qyoon3B6wDze32NWnzFLRIl5mTH+OqmWNNxvAPDB+8CUTYBVcMAfiMOT87yGhfr8gn4KrQmpTe1Mllm0yjQRu 2c29c3af72e33117e28ac79b060abe5d87d892c4ed7204b40125c674afd2403f

The result will be true if the signature is valid.

true