We manage your security to weather the AI storm →

← Resource Hub

The SwissBorg Hack Explained: A Compromised Staking API

By Owen Thurm Published 5 min read

The SwissBorg Hack Explained: A Compromised Staking API

Quick answer. In September 2025, SwissBorg reported losing about 192,600 SOL ($41.5M) from its SOL Earn wallet. Staking partner Kiln says an attacker modified its API to add a transaction changing withdrawal authority. API pentests test endpoints that move funds.

Watch: The SwissBorg Hack Explained: A Compromised Staking API 1:43
Video transcript

In September 2025, SwissBorg lost tens of millions in SOL, yet says its systems were never breached. Its staking partner Kiln says an attacker modified a Kiln API.

SwissBorg reported about 192,600 SOL lost from its SOL Earn wallet, around 41.5 million dollars, per CoinDesk. It said it would cover any shortfall.

Per Kiln, it began with a compromised GitHub token. The attacker triggered build workflows, harvested credentials, and injected a payload into the Kiln Connect API, which added a transaction changing withdrawal authority.

The payload fired only when an authority held over 150,000 SOL. Kiln says a quorum of signers in the client's custody setup approved it. SwissBorg says the tampering happened inside Kiln.

The attack rode inside a request the client asked for. A partner API that builds transactions, and its pipeline, are part of your attack surface.

If you sign what an API builds, decode it and reject any extra instruction. Give authority changes their own approval, ask vendors who can change their API, and monitor for authority changes.

Two of the six areas in Guardian's API Pentest match this surface: automation triggers and endpoint authorization. Infrastructure Pentest covers the build side, and whether a compromised pipeline can ship or sign.

Read the full article for each company's account, or talk to Guardian about testing the APIs that build your transactions.

SwissBorg says its own infrastructure was not breached. Kiln, its staking partner, says an attacker modified a Kiln API to return a malicious transaction.

That makes it a third-party API case. Per Kiln, a quorum of signers approved a transaction that another company's service had prepared.

This explainer reports only what SwissBorg and Kiln published, and what reputable outlets reported, with dates.

What Happened

On September 8, 2025, SwissBorg and Kiln issued a joint statement. It said an incident "may have involved unauthorized access to a wallet used for staking operations."

The statement said Solana funds had been "improperly removed" from that wallet. SwissBorg paused Solana staking transactions on its platform.

A SwissBorg spokesperson said "a partner API was compromised," hitting its SOL Earn Program, The Block reported. SwissBorg said other Earn programs and funds in its app were not affected.

Per CoinDesk, SwissBorg said the wallet was used exclusively for SOL Earn, and that the loss affected under 1% of its users.

On September 9, Kiln CEO Laszlo Szabo said: "We took immediate action once we identified a potential compromise in our infrastructure."

Kiln began an orderly exit of all its Ethereum validators, which it called "a precautionary measure."

Kiln also said there was "no indication of any fund loss other than the SwissBorg incident."

How the Attack Worked

Kiln set out the attack path in an October 7, 2025 update. Each step below is Kiln's account.

  1. The entry point was "the compromise of a GitHub access token belonging to a Kiln infrastructure engineer."
  2. The attacker created and deleted branches to trigger CI/CD workflows in Kiln's infrastructure-as-code repository.
  3. From those workflows, the attacker harvested stored secrets and cloud credentials.
  4. The attacker injected a malicious payload into a running Kubernetes pod hosting the Kiln Connect API.
  5. The modified endpoint returned a malicious transaction alongside the expected "deactivate stake" transaction.
  6. That transaction changed the withdrawal authority of the Solana stakes.

The payload was conditional. It fired only when the stake account's existing withdrawal authority held more than 150,000 SOL in stakes.

As of October 7, Kiln said there was "no conclusive evidence" of how the GitHub token was compromised.

The signing step

Kiln says one client used Kiln Dashboard to unstake a SOL stake account on August 31. The transaction went to the client's custody solution.

There, Kiln says, it "was approved by a quorum of signatories in the customer's custody instance."

SwissBorg's November 17 update says it was "the first organisation among Kiln's clients to sign an unstaking transaction" on a wallet that size.

It says forensics concluded "the tampering of the transaction happened within Kiln's infrastructure." After reviewing its own systems, it says "no breach occurred within SwissBorg's infrastructure."

Timeline and Loss

DateEventSource
Aug 31, 2025Client unstakes a SOL stake account via Kiln DashboardKiln
Sep 8, 2025Kiln detects the attack; joint statement; SOL staking pausedSwissBorg and Kiln
Sep 9, 2025Kiln begins exiting all Ethereum validatorsKiln
Oct 7, 2025Kiln publishes the attack pathKiln
Nov 17, 2025SwissBorg publishes its security updateSwissBorg

Who reported which loss

  • About 192,600 SOL ($41.5M): SwissBorg, per CoinDesk (September 9, 2025). Its post on X said "~193k SOL."
  • About 192,600 SOL ($41.3M): onchain investigator ZachXBT, per The Block (September 8, 2025).
  • Over 192,000 SOL: SwissBorg's November 17 update.
  • No amount: Kiln's updates do not state the size of the loss.

SwissBorg said it would cover any shortfall, CoinDesk reported. SOL Earn redemptions were paused while recovery efforts went on.

Kiln said: "Client assets remain secure." It expected its Ethereum validator exit to take 10 to 30 days.

What It Shows

The attack rode inside a request the client had asked for. Per Kiln, the malicious transaction arrived alongside the expected deactivation.

A partner's API that builds value-moving transactions is part of your attack surface. So is everything that can change that API, including its build pipeline.

The 150,000 SOL condition limited the attack to withdrawal authorities holding large stakes. Kiln says there is no evidence of any other malicious transaction.

Checks for teams that sign what an API builds

  • Decode every transaction an API returns, and compare it with the action you asked for.
  • Reject any extra instruction, such as an authority change inside an unstake.
  • Treat stake and withdrawal authority changes as their own high-friction approval.
  • Ask each vendor who can change its production API, and how CI secrets are scoped.
  • Monitor stake accounts for authority changes, not only for balance moves.

Our guide to blind signing covers how signers can verify what they approve.

For vendor review, see third-party risk management for digital assets. For CI secrets as an entry point, read the tj-actions/changed-files compromise.

How API Pentest Tests This

Guardian's API Pentest tests "what each key can reach and what happens when one is used from somewhere new." Two of its six areas match this surface.

  • Automation triggers: endpoints that fire relayers, bots or onchain transactions, and flows that can be replayed or reordered.
  • Endpoint authorization: per-object checks, tenant isolation, mass-assignment and trust in client-controlled parameters.

The other four are key scoping, abuse resistance, surface discovery and authentication. Every endpoint is tested at each privilege level, across REST, GraphQL, gRPC and custom protocols.

The build side has its own engagement. Guardian's Infrastructure Pentest attacks cloud accounts, pipelines and vendor consoles "the way an intruder escalates toward something that signs."

Its build and deploy checks cover CI/CD runner permissions and "whether a compromised pipeline can ship or sign."

Frequently Asked Questions

Was SwissBorg hacked?

SwissBorg says no breach occurred within its infrastructure. Kiln says an attacker injected a malicious payload into its Kiln Connect API, and the resulting transaction was approved by a quorum of signers in the client's custody setup.

How much did SwissBorg lose?

SwissBorg reported about 192,600 SOL, or $41.5 million, per CoinDesk. ZachXBT put it at about 192,600 SOL ($41.3 million), per The Block. SwissBorg said it would cover any shortfall, CoinDesk reported.

What caused the Kiln API compromise?

Kiln's October 7, 2025 update says the entry point was a compromised GitHub access token belonging to a Kiln infrastructure engineer. Kiln said there was no conclusive evidence of how the token was compromised.

What does an API pentest test?

Guardian's API Pentest tests what each key can reach and what happens when one is used from somewhere new: key scoping, endpoint authorization, abuse resistance, surface discovery, authentication and automation triggers.

Sources

Test the APIs that build your transactions

Guardian's API Pentest tests endpoints that fire onchain transactions, with every endpoint tested at each privilege level.