TGViewer
Channel Public Channel
THORChain Announcements

THORChain Announcements

@thorchain

THORChain Announcements
Subscribers
1.39K
Photos
219
Videos
14
Links
676
Recent Posts 20 shown
Post #1017 508
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# ℹ️ INACTIVE VAULT RECOVERY — KEYSHARE REQUEST

NETWORK: MAINNET
TYPE: Keyshare collection (no upgrade, no restart, no downtime)
URGENCY: LOW — voluntary, but user funds have been stranded for months

Three inactive vaults hold stranded user USDC (~$84.6k, Avalanche C-chain). Recovery needs former signers to share their keyshare files so we can sign the recovery txs. Need 13 of 19 signers per vault.

——————————————————

**VAULT 1 — 15,911.888 USDC (AVAX)**
Vault pubkey:
thorpub1addwnpepq072srp46fp0fgzwkk8cv53n3z4lckzw5s6rxx4u0g805pu6uqp7u5dvtxv
Check if your node ends with:
```
...nyj53w ...vnns8m ...p6nvm8 ...jlzw0n
...vmux5h ...s9tacs ...wdvwj0 ...n9s69g
...m2m2p7 ...xamkfd ...yxplcw ...fr54k6
...arptfk ...63sfsy ...4hquu3 ...0vfsex
...u7alas ...tl63d0 ...y9geqf
```

——————————————————

**VAULT 2 — 46,982.664 USDC (AVAX)**
Vault pubkey:
thorpub1addwnpepqv5hg0kdl54gxk3cjcr2dt5f66f2x4pja23zvw87zpxp2dnx2u4tsfwf0ez
Check if your node ends with:
```
...3dmw0q ...hm40qp ...pwdcr4 ...3qmaya
...ed9tcy ...7x2pch ...55qnth ...dft90c
...emne9y ...ydnfzq ...x56uuk ...9kfpay
...zjmefg ...r2hyt3 ...pdpxsu ...xa3cxw
...7q5u33 ...d5y7wc
```

——————————————————

**VAULT 3 — 21,667.832 USDC (AVAX)**
Vault pubkey:
thorpub1addwnpepqva9qfspxu87eexnwzvfxukwjctplelden7uw6fv3dna0vsvw23zs5ca0gd
Check if your node ends with:
```
...c2jdg3 ...0tkh6y ...4hfwle ...95g8rf
...xka8py ...96280h ...rpe624 ...3v7v3h
...fpwkfr ...vj5s5h ...ml07ns ...njxvnc
...k9ahem ...ne2rpj ...5qnee4 ...xld84v
...jms65a ...xxnk4j
```

——————————————————

**HOW TO CHECK + SHARE**

1. Check if your bifrost has a keyshare for any of these vaults:
```
kubectl exec -n <ns> bifrost-0 -c bifrost -- \
ls /root/.thornode/localstate-thorpub1addwnpepq072srp*.json \
/root/.thornode/localstate-thorpub1addwnpepqv5hg0*.json \
/root/.thornode/localstate-thorpub1addwnpepqva9qf*.json
```

2. Encrypt with age before sending:
```
cat /root/.thornode/localstate-<vault-pubkey>.json | \
age -r age1fcc89njnd3pfww5yhx3ytcnac6hlxzu7h500yy9r38kjz9k85f0slz4c89 \
-o keyshare-encrypted.age
```

3. Send the .age file via: DM to Itzamna · email itzamna@thorchain.org

@everyone
Post #1016 484
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

FYI: the dev teams met today and voted to continue our focus on stability/reliability of the protocol, so we're extending another week
Post #1015 482
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## CosmWasm security posture — patch incoming

Status on the CosmWasm / `MsgStoreCode` issue and where we stand:

With **ASLR and PIE enabled**, the attack surface for the known vulnerability is covered — exploitation is mitigated at the memory layer on every node that has it applied.

Two trust assumptions hold until the patch lands:

* that **all nodes have applied ASLR** — it's node-level, so any host that hasn't doesn't get the mitigation; and
* the **Rujira team**, who hold access to `MsgStoreCode` (when `HALTWASMGLOBAL` is disabled) — which is where the vulnerability lives.

A **patch goes out shortly** that closes this at the source. We'll confirm here when it ships.

@everyone
Post #1014 513
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## Host hardening — enable full ASLR

Interim security hardening for all node operators while a fuller fix is prepared. Please make sure full ASLR is enabled on your node host — check it, set + persist if needed, then reboot and re-verify:

```
# check current value (expected: kernel.randomize_va_space = 2)
sysctl kernel.randomize_va_space

# if not 2, set and persist:
echo 'kernel.randomize_va_space = 2' | sudo tee /etc/sysctl.d/99-aslr.conf
sudo sysctl --system

# then reboot the node and re-verify:
sysctl kernel.randomize_va_space
```

@everyone
Post #1013 564
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## SOL Unhalt — bump your scanner first

SOL is being un-halted. Point your SOL RPC at an **ARCHIVAL** endpoint, then bump the scanner cursor to tip and confirm it's caught up.

**1) Get the current SOL tip slot** — run:

```
curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[{"commitment":"finalized"}]}'
```

…or read the top row at https://solscan.io/blocks.

**2) Bump the scanner floor to just under that slot** — bifrost env (`thornode.bifrost.env:`):

```
BIFROST_CHAINS_SOL_BLOCK_SCANNER_FLOOR_BLOCK_HEIGHT: "<CURRENT_SLOT>"
```

Your SOL RPC must be **ARCHIVAL** — pruned RPCs fail on old vault sigs.

**3) Apply:** `make install`

**4) Verify:** `make scanner` → `healthy:true`, height diff \< \~150 slots. Monitor — switch archival provider if it lags.

@everyone
Post #1012 516
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## THORNODE ❗ MAINNET ❗ MIMIR VOTE — ENABLE SOL VAULT KEEP-ALIVE

**NETWORK:** MAINNET
**TYPE:** Coordinated (mimir vote)
**URGENCY:** ASAP

Enables the SOL vault keep-alive (periodic `consolidate` self-send) that re-anchors the SOL scanner cursor and prevents the observation gaps behind the recent stuck SOL outbounds. `SignatureRefreshBlocks` = 3600 THORChain blocks (\~6h), matched to SOL's \~1-day tx retention. Currently unset (feature off).

```
make mimir
```

key: `SignatureRefreshBlocks` value: `3600`

Needs a ⅔ supermajority of active nodes.

@everyone
Post #1011 459
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## THORNODE ❗ MAINNET ❗ UPDATE 3.20.1 (Bifrost) ❗ VALIDATORS ONLY

https://gitlab.com/thorchain/thornode/-/releases/v3.20.1

NETWORK: MAINNET
TYPE: Non-coordinated
URGENCY: ASAP

This is a Bifrost patch release containing a fix for the non-deterministic path in `thornode` that caused the halt. We'll follow the next steps:

1. Update your validators

```
make pull
make install
```

2. Restore snapshot

> If you are a validator use the default Liquify endpoint, please use https://thornode-snapshots.kukulkan04.workers.dev/snapshots/thornode/27590008.tar.gz

```
» make restore-external-snapshot
=> Select snapshot provider
liquify <--------------------
node-launcher-provider
=> Enter API base URL [https://snapshot-api.liquify.com]:

=> Fetching available snapshot types...
=> Select snapshot type
mainnet-archive
mainnet-archive-v0
mainnet-archive-v1
mainnet-pruned <-------------
midgard
=> Fetching available snapshots...
=> Select block height to recover
27590008 <-------------------
27586021
27573087
27490804
25400661
=> Requesting download URLs...
=> Select download region
all (use all regions as mirrors)
DE
GB
```

3. Wait for node to reach current consensus round

> Check for errors such as: "error signing vote: round regression at height 27590010. Got X, last round 512"

4. Wait for block production

5. `HALTTRADING` will be triggered by Maya team

6. Maya team will look for unobserved transactions during the halt


Once everything looks healthy and ready to go we'll unhalt trading again.

@everyone
GitLab v3.20.1 · THORChain / THORNode · GitLab This release will use a private binary including additional security patches - DO NOT build from source. Changelog ...
Post #1010 733
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

🗳️ Node Vote Reminder: ADR-029

Reminder to vote on ADR-029, we currently have 48% of the notes voting and need another 20ish votes to pass rev-share.

```
make mimir
Key: ADR029
Values:
* 1 = Vote For
* 0 = Vote Against
```
Post #1009 802
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## Mimir Vote Request: `STREAMINGLIMITSWAPMAXAGE = 5256000`

Requesting **3 node operators** to cast an operational Mimir vote.

| Field | Value |
|---|---|
| **Key** | `STREAMINGLIMITSWAPMAXAGE` |
| **New value** | `5256000` (~1 year) |
| **Current default** | `43200` (~3 days) |
| **Votes needed** | 3 (`OperationalVotesMin`) |

### What it does

Raises the max lifetime of a limit swap from ~3 days to ~1 year. Long-dated limit orders are a frequently requested feature, and a 3-day ceiling is too short to be useful for most traders.

### Why it's safe now

The previous blocker was performance: `processExpiredLimitSwaps` scanned every height from `currentHeight - maxAge` forward on each block, so a 1-year TTL meant millions of KVStore lookups per block.

That was fixed — expiry entries are stored at their exact expiry height, so the handler now does a **single lookup for the current block**. Cost per block is constant regardless of how large this value is.

### No admin key or hard fork required

`StreamingLimitSwapMaxAge` is in the operational-mimir list, so three matching node votes activate it.

### How to vote

From your node-launcher directory:

```bash
make mimir

Enter when prompted:

- Key: STREAMINGLIMITSWAPMAXAGE
- Value: 5256000
```
Post #1008 729
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# 📢 Dynamic Fee Experiment Update & Expansion

I know we've had several announcements like this recently. We don't want to create churn for the community or node operators, but there has been a lot happening lately—which is both exciting and, at times, operationally challenging.

I wanted to provide a quick update on the Symbiosis experiment and announce that we're expanding the dynamic fee experiment to another affiliate: **ShapeShift** (`ss`).

---

## Symbiosis Update

We ran into an immediate issue with the Symbiosis rollout. Because we were receiving essentially **zero trading volume**, the dynamic fee mechanism never had an opportunity to "spin up."

This is a relatively small edge-case bug. Under normal conditions it isn't an issue, since it only takes a single swap for a given trading pair to initialize the feature. However, Symbiosis wasn't sending any swaps our way. We generally win larger trades ($50k–$100k+), which occur less frequently, so this left the experiment with no meaningful data.

While investigating, I also noticed an inefficiency in how Symbiosis routes swaps through THORChain that inflates our quoted price.

For example, for an **ETH → BTC** swap, Symbiosis currently:
1. Swaps **ETH → USDC** through Kyber or 0x.
2. Sends the resulting **USDC** to THORChain.
3. THORChain then swaps **USDC → BTC**.

This results in an unnecessary extra swap before reaching THORChain.

A more efficient flow would be to send **ETH directly** to THORChain and allow THORChain to perform the native double swap internally. This reduces unnecessary overhead and produces a more competitive quote.

This isn't an issue for Chainflip since **USDC is their base asset**, meaning they only perform a single swap.

I've opened a pull request in the Symbiosis codebase to address this. There's no ETA yet on when it will be reviewed, merged, or deployed.

In the meantime, it makes sense to continue the experiment with another affiliate that has meaningful flow.

---

## ShapeShift

ShapeShift has consistently been a strong partner for THORChain. Their team is responsive, cooperative, and easy to work with.

During **June**, THORChain captured **5.8%** of ShapeShift's routing volume, compared to:

- **Chainflip:** 54%
- **NEAR:** 33.4%

There is clearly meaningful volume available for THORChain to compete for here.

I'd like to ask **three node operators** to enable ShapeShift for this experiment using the following operational Mimir:

```text
DYNAMICFEE-WHITELIST-SS = 1
```

Since this is an operational Mimir, we only need **three nodes** to enable it.

Once enabled, we'll begin collecting data and evaluate how the dynamic fee performs within this specific routing market.
Post #1007 728
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# THORNODE ❗ MAINNET ❗ BASE daemon — v1.1.1 (fork)

**NETWORK:** MAINNET
**TYPE:** Non-coordinated
**URGENCY:** ASAP

base-daemon is updated to **v1.1.1**. If you self-host a BASE daemon, pull node-launcher and redeploy:

```
make pull
make install
```

Base hardforked at L2 block **47806543** (~16:00 UTC today). Daemons not on v1.1.1 stall at that block and stop observing/signing BASE — update now to cross the fork. (Base release: github.com/base/node/releases/tag/v1.1.1)

@everyone
GitHub Release v1.1.1 · base/node What Changed ImportantBase Mainnet: Operators must upgrade to this release by June 25th at 18:00:00 UTC for the Beryl hardfork. See here for more information. Base Sepolia: Recommended upgrade to i...
Post #1006 581
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## MIMIR VOTE — UNHALT TCY CLAIMING

**NETWORK:** MAINNET
**TYPE:** Coordinated (mimir vote)
**URGENCY:** ASAP

TCY claiming has been halted (`TCYCLAIMINGHALT=1`) since the claiming fix landed; that patch has been live on mainnet since v3.18.0 (current mainnet 3.19.1), so claiming can safely resume. Vote to clear the halt:

```
make mimir
```
key: `TCYCLAIMINGHALT` value: `0`

Operational mimir — clears once ~3 active nodes vote `0` (operational quorum, not a full supermajority).

@everyone
Post #1005 646
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

## DISABLE BIFROST KEYVERIFY

**NETWORK:** MAINNET
**TYPE:** Non-coordinated
**URGENCY:** ASAP

ECDSA migration is complete — bifrost keyverify is no longer needed, and leaving it on only makes nodes periodically drop availability (~every 10 min) and risk extra slashing. Node-launcher now disables it by default; please pull the latest and redeploy to pick it up (restarts bifrost):

```
make pull
make install
```

Restart-required, local-only — it does NOT halt signing/observing or affect keyverify elsewhere. (To keep keyverify on, set `BIFROST_SIGNER_KEYVERIFY_DISABLED: "false"`.)

@everyone
Post #1004 465
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# THORNODE ❗ MAINNET ❗ MIMIR VOTE — UN-HALT GLOBAL TRADING

**NETWORK:** MAINNET
**TYPE:** Coordinated (mimir vote)
**URGENCY:** ASAP

Next recovery step — re-opening global trading. All per-chain trading halts are already 0, and secured + trade assets are enabled; the only remaining gate is the global HALTTRADING. Vote it to 0 to reopen swaps.

```
make mimir
```
key: `HALTTRADING` value: `0`

Operational mimir — ~3 active-node votes (vote the same value; votes purge on churn, so land them together).

@everyone
Post #1003 580
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# THORNODE ❗ MAINNET ❗ MIMIR VOTE — UN-HALT SECURED + ENABLE TRADE ASSETS

**NETWORK:** MAINNET
**TYPE:** Coordinated (operational mimir vote)
**URGENCY:** ASAP

Recovery step — re-opening secured-asset and trade-asset trading.

```
make mimir
```
key: `HALTSECUREDGLOBAL` value: `0`
key: `TRADEACCOUNTSENABLED` value: `1`

Both are operational mimirs — ~3 active-node votes each (vote the same value; land them together, votes purge on churn).

@everyone
Post #1002 495
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# THORNODE ❗ MAINNET ❗ MIMIR VOTE — UNHALT SIGNING (GLOBAL)

**NETWORK:** MAINNET
**TYPE:** Coordinated
**URGENCY:** ASAP

The churn has rotated and the retiring vaults need to migrate funds into the new ones — that needs signing back on. Please vote to un-halt global signing. Operational mimir, so only the small quorum (3 nodes) is needed.

```
make mimir
```
key: `HALTSIGNING` value: `0`

@everyone
Post #1001 454
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# THORNODE ❗ MAINNET ❗ SUCESSFUL CHURN - NEED 1 MORE VOTE — HALT CHURNING

We're at 2 of 3 operational votes to halt churning for the migration — need one more node to vote:

> This is to avoid any clashing while we migrate and test the new TSS changes that have been made

```
make mimir
```

key `HALTCHURNING` value `1`

@everyone
Post #1000 601
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

<:alert:1143254456893456485> **THORNode Halted at 3.19.0 Upgrade Height — Action Required (Affected Validators)**

**NETWORK:** MAINNET
**TYPE:** Per-validator action (non-coordinated)
**URGENCY:** ASAP for affected nodes

These nodes are dead weight on consensus (network at ~89% signed) and block the recovery plan — keyverify (step 5) and the upcoming churn (step 7) need every active node healthy.

**Affected nodes:** `kwex` `0rde` `rsyj` `skf6` `nk4j` `vwj0` (thornode down, host up) and `69mz` (host fully unreachable—operator must restore the machine first)

If you operate one of these, pull the latest node-launcher and re-deploy to pick up the 3.19.0 image:

```
make pull
```

```
make install
```

Your node will catch up the ~18k missed blocks in well under an hour. Once all 7 are signing again we can proceed with the keyverify ceremony and the rest of the recovery.

@everyone
Post #999 731
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# Mimir Vote for Compromised Vault — Active Validators Only

Following step three from https://discord.com/channels/838986635756044328/839001804812451873/1512583315339739257 we now need to vote to disable the compromised vault.

```
❯ make mimir
=> Enter THORNode Mimir key:
```

Enter the value
```
CompromisedVault-thorpub1addwnpepqvpnhwzqkd2zqkxsj272faf4ezsngwh773wjdfkus8m4f860u3g5ka22v28
```
Set value to 1
```
=> Enter THORNode Mimir value: 1
```

@everyone
Discord Discord - Group Chat That’s All Fun & Games Discord is great for playing games and chilling with friends, or even building a worldwide community. Customize your own space to talk, play, and hang out.
Post #998 529
New Discord Announcement from THORChain Devs #🚨thornode-mainnet

# Mainnet 3.19.0 Upgrade Proposal - Validators Only

Changelog: https://gitlab.com/thorchain/thornode/-/releases/v3.19.0
Block: 26518000
Date: <t:1780968360:F> (June 9, 2026 01:26 UTC) - https://runescan.io/block/26518000
Note: Block time is an estimate and may fluctuate.

URGENCY: 3 days

> Please note that this release is a private image containing a security patch. Any nodes that wish to review the patch can relay an `age` public key and one of the devs or THORSec will reply with an encrypted patch and instructions to verify the reproducible build hash.

Release 3.19.0 ships our TSS patches which will be disclosed once we proceed through the chain recovery as well as the store migration that will conciliate the economical fallout of the hack for which you can see the details in https://adr28.thorchain.org. This version also includes a new method to handle compromised vaults through the operational mimir `CompromisedVault-<pubkey>` which avoids scheduling, signing and overall transaction processing — while still observing the actual transactions — for the vault specified in the mimir pubkey.

The full network recovery plan is as follows:

1. Vote to approve release 3.19.0.
2. Upgrade the network on Monday.
3. Enable the `CompromisedVault-thorpub1addwnpepqvpnhwzqkd2zqkxsj272faf4ezsngwh773wjdfkus8m4f860u3g5ka22v28` mimir to quarantine the compromised vault.
4. Validate the ADR-028 store migration (Maya team).
5. Verify the integrity of every node's keyshares via the new temporary `keyverify` protocol (Maya team).
6. Unhalt signing.
7. Initiate the churn.
8. Wait for churn to finish
9. Unhalt Secured and Trade assets
10. Unhalt LP actions
11. Unhalt trading

Please approve via `make upgrade-vote`:

Select: `mainnet`
Enter THORNode name: <thornode namespace>
Enter THORNode upgrade proposal name: `3.19.0`
Select THORNode upgrade proposal vote: `yes`

@everyone
GitLab v3.19.0 · THORChain / THORNode · GitLab Proposed Block: 26518000 Date: Tuesday, June 9, 2026 01:26 UTC - https://runescan.io/block/26518000 Note: Block...
Older posts →

About this channel

How can I read @thorchain without a Telegram account?
TGViewer shows the public web preview Telegram publishes for THORChain Announcements: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does THORChain Announcements have?
THORChain Announcements (@thorchain) has 1.39K subscribers on Telegram, refreshed roughly every 30 minutes.
Does THORChain Announcements know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →