USDC Transfers Temporarily Affected by Noble Chain Upgrade

Over the past few days, users attempting to withdraw USDC from the Penumbra network have not been able to do so. This issue has come about due to a recent upgrade on Noble, which has unintentionally caused a downstream impact on users being able to transfer USDC in and out of Penumbra.

Noble’s recent upgrade introduced a new Bech32 library in Circle’s USDC middleware, which differs from the standard used elsewhere in the Cosmos ecosystem. This new library, which includes support for Bech32m, incorrectly rejects addresses longer than 90 characters, which were previously accepted by the Noble chain—a limitation that was unfortunately not caught before deploying the upgrade. Noble is aware of this issue, and is working on a fix that will be implemented after a thorough approval, audit, and review process.

While external infrastructure issues have momentarily affected USDC transfer capabilities, the core Penumbra protocol is still operating as per normal. Users’ funds within Penumbra remain safe. Transfers in and out of all other assets are fully operational and unaffected.

Radiant Commons is actively advocating for a solution to be effected as soon as possible, and we are in close contact with Noble to support them in the resolution of this matter. We will continue to keep the community updated on the progress towards a solution, and are working to ensure that this matter is resolved as soon as possible.

4 Likes

I just withdraw usdc to noble , transaction says it is a success , but didnt received funds. so what should I do , any method to claim my funds back or have to wait noble to find a solution?
Dont use noble frequently , it is just a coincidence to choose the wrong one :blush:
Or they are not accessable ? Not recoverable?

Hello! Please submit a support ticket on the penumbra discord (Discord) or directly to penumbra@mava.email to get follow up support :slight_smile:.

  • Ember, Community Lead @ Radiant Commons
1 Like

Wanted to give an update from the Penumbra Labs side.

Noble Fix Status

We’ve been in communication with the Noble team, but there is unfortunately still no concrete timeline on deploying a fix. As a result, I think it’s worth considering changes on the Penumbra side that would allow proactive interoperability. One possibility would be to add a third address format: Pre-UIP: Truncated Addresses , which would maximize compatibility with other chains. This format is kind of a hack and has numerous UX downsides, but could act as an escape hatch (an address format with UX warts may still be better UX than stuck funds). This would need to be deployed as part of a Penumbra chain upgrade, and this could be discussed in this week’s Penumbra community call.

Weekend Osmosis Relaying Issues

Over the weekend, users reported that relaying to Osmosis was interrupted, causing transfers to fail. This was concerning, as the Noble issue is specific to USDC (other Noble assets like USDY, and the IBC channel itself, are unaffected). Discussions with relayer operators suggest that the issue was ultimately caused by an Osmosis RPC that returned a stale/incorrect/corrupted sequence number for the relayer account. This caused the relayer to be unable to make transactions on Osmosis, although it could make transactions on Penumbra. As a result, inbound transfers worked, but outbound transfers failed. Failed transfers would time out and be refunded on the Penumbra side, so users maintained both control over and access to their funds at all times. However, as described below, a UI issue in Prax wallet did not appropriately surface this information. Relayer operators restarted relayers and all packets are believed to be cleared.

Penumbra <> Osmosis relaying should be fully operational at this time.

Users can check the Range dashboard to view transfers in and out of Penumbra, though it does not have full support for indexing Penumbra itself.

To minimize the chance of this reoccuring, some next steps are:

  • Upstream Penumbra-specific relayer code into Hermes, now that Penumbra’s code has stabilized post-mainnet;
  • Improve monitoring and health-checking of IBC relaying;
  • Engage the community to find near-term solutions to improve relayer diversity and resilience;
  • Longer-term, work to make self-relaying practical rather than just technically possible, to eliminate the dependence on relayers entirely (this could ideally be done as part of the IBC Eureka design).

Prax Improvements for Failed IBC Transfers

While investigating relaying issues, the Prax team noticed a UI issue that creates a very bad user experience when a user’s IBC transfer fails. We believe this has been the cause of significant confusion (including the confusion reported above).

In short, although Prax correctly detected refunds and made them available to users, Prax did not correctly display the corresponding transactions.

This meant that while a user’s balance is silently updated with their refunded transfer, there is no indication that the transfer’s failure was correctly handled in the form of a refund, only that an outbound transfer has been initiated. This leads users to (justifiably) wonder what happened to their transfer and conclude that funds are missing (even though they are not).

That’s a terrible user experience, and a fix for this issue is in development and will ship in the next Prax release. I believe this has been a significant contributor and “negativity multiplier” for the bad experience users are currently experiencing, and I’m glad to have identified it so that it can be fixed.

2 Likes

Hello! Any update on the Noble USDC transfer issue? Thanks!!

Hey! There’s a candidate upgrade that could fix the problem from the Penumbra side, feel free to leave a comment on the proposal if you think it’s a good idea! Candidate Mainnet Upgrade 2?