u/dudezmobi

Verus Discord Announcement

As you probably know, we have been quite busy dealing with yesterday’s attack on the Verus<->Ethereum Bridge. We are confident we have protected the network against any further compromise, stabilized the overall network operation, and can now take the time to provide some details that have yet to be published about the event. At this stage, we’ll describe what happened, how the compromise worked, and what the attackers had to do to execute it. We’ll also touch on planning towards recovery and what you can expect going forward, as we work towards re-enabling network features. First, a comment about what the attack was not. It was not a simple attack, not balance spoofing as in the Wormhole class of exploits and as claimed by Blockaid (we do appreciate their labeling of ETH exploiter addresses), and not something like a reentrancy bug in the Ethereum contracts. The attack was multi-step, well planned, and sophisticated, almost certainly aided by AI and demonstrating a deep understanding of what they could and could not do in the protocol. Funds used to carry out the exploit came from Tornado Cash on Ethereum and from a community faucet on Verus minutes before the exploit was executed. In both cases, they took precautions to hide the origin of requests, though we did get some evidence, which is still being investigated.

EXPLOIT TIMELINE Here is a basic timeline from address funding to exploit conclusion: May 17, 2026 11:50:59 AM , the Ethereum address 0x5aBb91B9c01A5Ed3aE762d32B236595B459D5777 was funded with 1 ETH via Tornado Cash in this transaction (https://etherscan.io/tx/0x84dc53d6705447ec6b4904bb905f9d78460de9bc671bef36ef79517d44e8ec86) May 18, 2026 12:46:11 AM , the hacker used verus.cx/dev/demos/faucet to receive 0.02 VRSC to the their address: RW9vEWisAvEsvtb9LrPRt4q7w8iDB3g6zd, which was used within 4 minutes to begin submitting 4 blank, invalid, export transactions for the ETH chain destination, which had no transfers included, but contained supplemental information outputs. This was the first part of the exploit, which required significant study or a very good AI to understand how to get the Verus chain to accept these blank exports and their supplemental output, because Verus considered them non-active. Exports, typically cross-chain exports, may also use a type of output called a “supplemental export output”, which may contain additional transfers that are bound to the original export via a hash in the export. Supplemental outputs can only be put on a transaction that has a matching primary export. Once they succeeded in getting the chain to accept a blank, otherwise inactive export with Verus as source and Ethereum as destination, that enabled them to put a supplemental output onto the same transaction. The supplemental output was handcrafted to be parseable in two possible ways without triggering errors if it was misread. It also contained specific data that matched the hash of the fraudulent transactions they wanted to execute.

Since it was not considered a primary export by the core PBaaS protocol, this was not seen by the daemon as active or malicious. Getting that transaction to be accepted and misinterpreted with the handcrafted information completed the preparation needed for the next steps of the exploit, which would ultimately target the Ethereum contract. Once these outputs were on the chain in the following transactions after initial funding: (https://explorer.verus.io/address/RW9vEWisAvEsvtb9LrPRt4q7w8iDB3g6zd), the attackers could have been stopped if someone sent legitimate transfers over the bridge. This is because they had gotten invalid, though inactive transactions accepted, miners and stakers would recognize that there were two threads of exports, even though one was invalid, and stop being able to construct blocks under the DeFi rules, due to the error condition. Unfortunately, they were not stopped, as there was no legitimate Ethereum-destined transaction posted during their attack window. The exploit transaction itself being posted into the contract is what ultimately stopped the chain from moving forward. In a move that seems to indicate the attackers were aware of the timing risk or trying to get faster cross-chain notarizations, they put 4 transactions that all had the handcrafted outputs, meaning only one could be used, onto the chain. It seems that these transactions were an effort to get cross-chain notarization to Ethereum to occur faster.

Once a cross chain notarization was posted to Ethereum that was far enough ahead to prove one of their outputs, they submitted a handcrafted cross-chain import to Ethereum. The submitted import presented their provable, hand crafted supplemental output because they knew that if a supplemental output was submitted in that way, along with the transfers that matched the hash, the Ethereum contract did not check the supplemental field and would parse the output as if it were an active export. Since it was an existing and provable output, this error in parsing caused the Ethereum contract to place their handcrafted values, including the hash of their drain transactions, into what it interpreted as a primary export, which was enough to get the transactions to pass. The supplemental output of Verus transaction https://explorer.verus.io/tx/f899e6984dc7c3d7737bbca5d87db3682de355743349d40396a5fc34b9f5a733 was used to impersonate a valid cross chain export by proving the handcrafted information in the supplemental output #1 of that transaction and it not being parsed as supplemental data, which would have been rejected. The transaction with the fraudulent transactions and the handcrafted output and proof is here: https://etherscan.io/tx/0x6990f01720f57fc515d0e976a0c4f8157e0a9529194c4c15d190e98d087eb321

Shortly after the contract accepted the fraudulent transactions, most nodes that were mining and staking hit an assert that was caused by seeing both the invalid exports and a real export at the same time and recognizing an invalid chain state. After this, there were no additional compromises possible, as the chain and any subsequent notarizations stopped advancing until we issued an oracle notification to disable DeFi. The oracle notification required an effort to get one block in with it, and once that happened, it succeeded in getting blocks moving again by bypassing the assert, which will only happen if DeFi is enabled. There was a chance that the assert could have happened before the attackers succeeded in getting the last notarization confirmed, which would have stopped the exploit, but that did not occur in time.

NEXT STEPS While many of us in the Verus Community have suffered as a result of this exploit, some quite significantly and most or all contributors included, the fact that it took a multi-step exploit of this level of sophistication to first setup and then get past the contract checks does not indicate that the core Verus protocol, DREAM application model, all of the work in progress, or even the core bridge technology is incapable of realizing the Verus vision. It means that we need to realize that with the state of AI, exploits have entered a new phase, harden against this and any other vulnerabilities we might find with additional auditing, and figure out how we can all move forward with confidence. We also need to address the elephant in the room of how a decentralized community can deal with such an event and develop a plan to address the funds losses in a way that we as a decentralized community without VCs can. That means addressing the bridge functionality first, then working together to repair the damage these attackers have done to our network and community.

We are working on an approach that I was able to share a bit about in today’s community meeting and that we will write up and share in an upcoming announcement. For now, we are focused on doing every part of what it takes to get a hardened upgrade out with a plan that gives our community and network a solid path forward. Thank you!

reddit.com
u/dudezmobi — 3 days ago

Verus Updates

About 6 hours ago, at 11:55:23 PM UTC, the Verus-Ethereum bridge was compromised and ETH, USDC, and tBTC taken from the Ethereum contract. At this time it appears other assets on the bridge are unaffected.

As of now the Verus network has halted, with most block-generating nodes taking themselves offline after encountering byproducts of the attack as designed.

We are all working as hard as we can to determine the extent of the issue and exactly where things are. We will provide more information as soon as we have something definitive. Developers are investigating exactly how the attack was carried out and determining next steps.

reddit.com
u/dudezmobi — 4 days ago

Announcing Verus v1.2.16-1 - CRITICAL BITCOIN CVE PATCH

Announcing Verus v1.2.16-1 - CRITICAL BITCOIN CVE PATCH AND NETWORK RESILIENCY UPDATE v1.2.16-1

CLI RELEASE: https://github.com/VerusCoin/VerusCoin/releases/tag/v1.2.16-1

GUI RELEASE: https://github.com/VerusCoin/Verus-Desktop/releases/tag/v1.2.16-1

GUI TESTNET RELEASE: https://github.com/VerusCoin/Verus-Desktop/releases/tag/v1.2.16-1-testnet

Addresses CVE-2024-52911, a vulnerability discovered in Bitcoin Core versions 0.14.1 through 28.4, which was also present in Verus versions prior to v1.2.16-1, that could result in a node crash if miners or stakers successfully mined or staked maliciously crafted blocks. This update also improves transaction cleanup during reorgs to prevent nodes from stalling in an edge case. This is considered a critical update, and it is highly recommended for all operators to upgrade as soon as possible.

v1.2.16-1 also includes new reporting capabilities in listtransactions that may be useful for those working on calculating earnings, gain, or loss from blockchain use. If a query object is passed in place of the account parameter, it is possible to get an earnings report from the current wallet and all addresses under its control. Earnings calculated can include validation earning in either USD or EUR, cost basis calculation, and both short and long-term gain & loss from currency conversion. While all accounting is believed to be accurate and useful, as always, use of Verus software is at your own risk and developers or publishers assume no liability for reliance on its output.

u/dudezmobi — 11 days ago

ANNOUNCING VERUS MOBILE 1.0.1 TESTFLIGHT/GITHUB APK RELEASE, AND CALL FOR TESTING TO TEST IDENTITY UPDATES AND APP ENCRYPTION REQUESTS, ENABLE EXPERIMENTAL DEEPLINKS IN WALLET SETTINGS

Github APK (Android): https://github.com/VerusCoin/Verus-Mobile/releases/tag/v1.1.0-1

TestFlight Link (iOS): https://testflight.apple.com/join/A6e5WS35 (This link may take a few hours to display 1.0.1-1, if it says it isn't accepting new testers, try again soon)

This release is a large wallet capability update, and the result of about 2 calendar years of work by a number of developers, both volunteers and with bounties supported by donations, to allow Verus Mobile to support the Verus DREAM (Decentralised, Rights-preserving Encryption Application Model). The biggest changes are a rework of Z-transaction support, refactoring and upgrading it on the back-end and adding shielded transaction support for Android, the new compact, much more capable DREAM deeplink, QR code, and NFC format, and support for identity update, and data encryption requests. Updated Z-address support As part of the complete rework/upgrade of z-transaction/encryption/decryption support, Android now supports shielded Verus addresses and private Z transactions through the native lightwallet stack. This brings Android to feature parity with iOS for private wallet operations. What this means in practice:

* All users can now set up a Z seed from Settings > Profile. If your current wallet seed is a valid 24-word mnemonic, the app can offer to reuse it as the Z seed. You can also import an existing 24-word Z seed or an extended spending key.

* All wallets can now derive Sapling/Z addresses, track shielded balances, show shielded sync progress, and list private transactions.

* Z memos are supported when sending to private/Z recipients. The memo field appears in the send form when the destination is a private address.

* The app blocks sending while a shielded wallet is still syncing, because private balance data is only reliable after sync completes. First sync can take a while.

* Private funds need confirmations before they are spendable. The UI now explains this when a private balance is pending or not yet spendable.

  1. New GenericRequest deeplinks The app now supports the new compact GenericRequest deeplink format. These are the new verus:// links, such as: verus://1/<compact request payload> The GenericRequest is a unified request envelope. Instead of every feature inventing its own QR/deeplink format, apps can package one or more request details into a single signed request. Verus Mobile can parse the envelope, verify who signed it, validate each request detail, show the correct UI, build a response, sign that response, and return it to the requesting app or service. This is a newly defined, extendable protocol that enabled the development of Verus DREAM applications by creating a package for any type of wallet request (present or future), including identity updates, app encryption requests, user data requests, login requests, VerusPay invoices, or even a combination of multiple different request types at once. Supported request details in this release include:

* VerusPay v4 invoice details, adding support for private addresses to VerusPay, and greatly reducing the size of a VerusPay request to allow for easier-read QR codes or more data

* AuthenticationRequest, the new compact login/authentication request, also greatly reduced in size, with added support for encrypted responses

* IdentityUpdateRequest, a new request type that allows for deep links or QR codes to prompt the user to add encrypted data to their ID, or update their VerusID details

* AppEncryptionRequest, a new request type that allows for the creation of an zero knowledge encrypted channel between an app and the user's wallet

* DataPacketRequest and UserDataRequest primitives exist in the libraries and are upcoming, but are not fully exposed in the app UI yet

  1. Important behavior:

* Legacy x-callback-url VerusPay and login deeplinks are still supported.

* New verus:// links are shorter and more flexible.

* Experimental request types, including identity update and app encryption, are controlled by the "Enable experimental deeplinks" setting.

  1. This release turns Verus Mobile into a general request handler for Verus identity, payments, encryption, and future app-to-wallet workflows. IdentityUpdateRequest support GenericRequest can now carry identity update requests. Verus Mobile validates the request, loads the target identity, compares the proposed update against the current identity, and presents a guided review flow. The identity update UI is split into clearer steps:

* Review who requested the update and which identity would be changed.

* See a summary of content changes and high-risk changes.

* Inspect identity content changes in a dedicated content step.

* Review authority, recovery, revocation, and other sensitive changes separately.

* Confirm payment and submit the update transaction when approved.

* See and copy the resulting identity update transaction ID after completion.

  1. There is also special handling for credential data. If an identity update includes vrsc::identity.credential content, the app encrypts credential data locally before creating the transaction. The plaintext credential data is not sent to the RPC server. This requires the user's Z seed to match the private address on the identity. AppEncryptionRequest support This release adds the first mobile flow for AppEncryptionRequest inside GenericRequest. An AppEncryptionRequest lets another app ask Verus Mobile to derive Verus encryption key material from the user's identity and Z seed, after user approval. The wallet can return viewing-key/address information, and optionally an extended spending key if the request asks for it and the user approves. The app shows:

* The requesting identity

* The signing system

* Signature time when available

* Derivation number

* Derivation identity or request identity when present

* Whether an encrypted response address is requested

* Whether the request asks for secret key material

  1. Responses are added to the GenericResponse and then signed by the user's selected identity. If the request includes an encryption response address, the response detail can be encrypted into a DataDescriptor before it is returned. This feature depends on the user's Z seed because the derivation uses Sapling key material. If no Z seed is configured, the app explains that setup is required. Deeplink reliability and UI polish There are also a number of smaller fixes and UI changes in this release:

* Fixed an iOS issue where deeplinks could fail to trigger if the app was already open.

* Reworked VerusPay information pages.

* Reworked login/authentication request pages.

* Added clearer request signer cards, chain labels, timestamps, and technical detail sections.

* Added UI for opening compatible requests in another installed Verus handler app.

* Added settings for experimental GenericRequest request types.

* Improved Z-wallet sync messaging and send blocking while shielded data is still syncing.

For developers and services If you are building an app or service that talks to Verus Mobile, GenericRequest is the new preferred format. Use verus://1/<payload> for the new compact request deeplinks. The request can include one or more detail objects, response URIs, signer metadata, a preferred handler, and a signed envelope. Verus Mobile will validate the envelope and route each supported detail to the right user flow. The verusid-ts-client library supports the creation of these requests and older request styles are marked as deprecated. Legacy VerusPay and legacy login consent deeplinks still work, but the new GenericRequest format is where new functionality will land. This release is an important step toward the realization of the Verus DREAM, enabling the creation of decentralized applications that preserve user rights, scale to the world, and aren't subject to value extraction. To learn more about the Verus DREAM model, you can watch u/miketout's presentation at Paris Blockchain Week last week at https://www.youtube.com/watch?v=8alMlLVcZuU. More resources to come. Happy testing :) Once we get enough testing on this release, and the remaining expected DREAM request types are pulled into the app, an App Store/Play Store release with the new request types is imminent.

u/dudezmobi — 1 month ago

🔥 Key Takeaways from Mike Toutonghi’s Paris Blockchain Week 2026 Keynote

The talk starts with a simple but powerful idea:
👉 “Your data means power over you.”

Today’s digital economy is built on collecting, analyzing, and monetizing your personal data—often without real control on your side. From supermarkets that track your behavior to data brokers shaping decisions, the current system is designed for profit over privacy.

🧠 The Problem

  • Data brokers turn your history into predictive and persuasive tools
  • Companies can influence pricing, behavior, and decisions using your data
  • Centralized apps = middlemen controlling identity, payments, and access
  • Users pay fees (2–4%) AND give away personal data
  • Even crypto today still suffers from issues like MEV exploitation (~$700M extracted on Ethereum)

🚀 The Vision: A Better Internet (DREAM)

Mike introduces DREAM:

Decentralized, Rights-preserving, Encrypted Application Model

Built on the Verus Protocol, the goal is simple:
👉 Put users back in control of identity, data, and money

🔑 Core Innovations

  • Self-Sovereign Identity (VerusID)
    • You own your identity forever (no company in control)
    • Encrypted, portable, and globally resolvable
  • Privacy by Default
    • Data is encrypted—even public data
    • You can prove something (e.g. age) without revealing everything
  • No Middlemen
    • No payment processors taking 2–4%
    • No platforms selling your data
  • Fair & Transparent Finance
    • Built-in currency baskets with no MEV, no front-running
    • Everyone gets the same price during conversions
  • Rent-Free Infrastructure
    • No VC control, no ICO, no founders taking a cut
    • Anyone can launch their own blockchain or app

📱 Real Use Cases

  • Login anywhere without passwords using your ID
  • Send payments in any currency with auto-conversion
  • Social apps with donations + identity proofs
  • Age verification without facial scans or data leaks
  • Encrypted messaging, private groups, AI agents, even medical records

⚖️ Privacy + Regulation (Balanced)

A key insight:

  • Data stays encrypted under user control
  • Regulators can still enforce rules via “do-not-decrypt” lists 👉 Privacy without losing compliance

📊 Adoption Reality

  • ~500M crypto users globally
  • Only ~315M use decentralized apps 👉 We’re still early

💡 Bottom Line

The current internet model:

You are the product

The DREAM model:

You are the owner

If decentralized apps want mass adoption, they need to match (or beat) Web2 usability—without sacrificing privacy.
DREAM is one attempt to make that real.

What do you think? Is this the future of apps, or too idealistic?

reddit.com
u/dudezmobi — 1 month ago

CLI RELEASE: https://github.com/VerusCoin/VerusCoin/releases/tag/v1.2.16

GUI RELEASE: https://github.com/VerusCoin/Verus-Desktop/releases/tag/v1.2.16

GUI TESTNET RELEASE: https://github.com/VerusCoin/Verus-Desktop/releases/tag/v1.2.16-testnet

v1.2.16 contains important security enhancements, fixes a VDXF ID content map clear bug that could cause history retrieval failures across a range of blocks, updates network seed nodes for improved connectivity, and includes various minor fixes.

u/dudezmobi — 1 month ago