Warning: The following analysis may contain incorrect information, please verify everything yourself before believing in these info.
Would be nice to have someone better in on-chain analysis to double check these.
SatrunBeam Finance was a yield aggregator on Moonriver, a EVM-Compatible parachain on Kusama in the Polkadot ecosystem.
It attracted several millions of liquidity within a month. The team is anon and they claimed that the contracts are audited by BitRise whose domain name was only registered on 2022-08-22 (https://who.is/whois/bitriseaudits.com). And the contracts were never actually verified on the block explorer.
UTC 5:55 am, Oct 10, 2021, RugDoc reporeted the project was rugged (https://twitter.com/RugDocIO/status/1447078249394159619).
- Twitter https://twitter.com/SaturnbeamFi deleted.
- Website https://saturnbeam.finance gone.
- Doc https://saturnbeamdev.gitbook.io gone, but I made a (partial) copy on web archive: https://web.archive.org/web/20211010100316/https://saturnbeamdev.gitbook.io/saturnbeam/.
- https://github.com/SaturnFinance still here (for now).
On Ethereum:
- https://etherscan.io/address/0x562331d30B14310870E29eaD7a506c897E1d1657
- https://etherscan.io/address/0xcedaa447fa9c41d660c2ced408c7ad4c34c6c2d6
- https://etherscan.io/address/0xc17cc543c032252f444973ec8f9fb64aed89c190
- https://etherscan.io/address/0x91999e93b286a2b924c4fdac18167067641065c3
- https://etherscan.io/address/0xcd82b0d10510e49a2acc6c97c3b93437b017ee0d
- https://etherscan.io/address/0x7b5fbebbf4f900799d8feae0a689221d02a6dfe7
In total, they hold 38.3 ETH + 1.6 WBTC + 4,778,887 DAI ~= 5M USD (ETH = $3,537.90, BTC = $54,866.00).
On Binance Smart Chain:
- https://bscscan.com/address/0xCEDAa447Fa9c41D660c2CeD408c7AD4c34c6C2d6 In total, they hold 397.90 BNB + 725,269 BUSD ~= 0.89M USD (BNB = $414.91).
On Moonriver:
- https://blockscout.moonriver.moonbeam.network/address/0x562331d30b14310870e29ead7a506c897e1d1657/transactions
- https://blockscout.moonriver.moonbeam.network/address/0xCEDAa447Fa9c41D660c2CeD408c7AD4c34c6C2d6/transactions
- https://blockscout.moonriver.moonbeam.network/address/0xC17CC543c032252f444973Ec8f9fb64Aed89c190/transactions
- https://blockscout.moonriver.moonbeam.network/address/0x91999e93b286A2b924c4fDAc18167067641065c3/transactions
- https://blockscout.moonriver.moonbeam.network/address/0xcd82b0D10510E49a2aCC6C97C3B93437b017ee0d/transactions
- https://blockscout.moonriver.moonbeam.network/address/0x7b5fbeBbF4f900799D8Feae0a689221D02A6DfE7/transactions
- https://blockscout.moonriver.moonbeam.network/address/0x4C35ebc628Be26536aC43B1D8A31B634aa7A8194/transactions
- https://blockscout.moonriver.moonbeam.network/address/0xC50d2916277c5E1c9Cc051ea56a3A95d0997734e/transactions
- https://blockscout.moonriver.moonbeam.network/address/0x0F186c803f602F31c2Bd3fCE5e7D738304FB1e6E/transactions
In total, they hold 12,222.5 MOVR ~= 3.4M USD (MOVR = $281.86), plus some MoonSwap $MOON, $mSWAP and SolarBeam $SOLAR which worth around 0.9M USD if they market dump on MoonSwap and SolarBeam.
- Moonriver explorer: https://blockscout.moonriver.moonbeam.network/.
- [V] Vault creator address:
0x609d246EE8173BDc63e61f5d8c854c9D870Bd5EB. - [A1] Attack address 1:
0xe54214A3Db66c6BF792573a6C6dFd0C6091dca75. - [C] Some contract address:
0x22123387c34fb69786774a8604cfc24e8ec58750. (Don't know what this is used for yet, but it appears as a argument in some of the following function calls.) - [A2] Attack address 2:
0x562331d30B14310870E29eaD7a506c897E1d1657. - [D] Drain contract address
0xA6Fd1665F79c5318B675120DA3DA3B7165CE7998.
-
In the vault creation txs sent by [V], we can find [A1] in the init byte code. So this address may be hardcoded in the contract the the rug was planned from the beginning. Example Tx
-
For all vaults, the following actions were performed (in this order):
- Format: [Initiator]
function sighash(function arguments)
- [A1]
0x3659cfe6([C]) Example Tx - [A2]
0x81f2c3b0([A2]) Example Tx - [A2]
0x494677c5(000000000000000001594cad792baa61637dd09ab168cb7ffaa54985cc5a16ab) Example Tx - [A2]
0x494677c5(000000000000000005200847b2a5db142ea7ee66b38decdd6ae24b45586c97e9) Example Tx
- Format: [Initiator]
-
(Rest of the steps are all performed by [A2].) Create [D]. Tx
-
Fall all vaults, call function
0x26fae0d3with [D] as input. Example Tx -
Call function
0x87bcff63of [D] with vault addresses as inputs. Tx, Tx, Tx -
Call function
0xe9316243of [D], draining all the vault LPs. Tx, Tx -
Call function
0x58b0f6d6of [D], swapping LPs to their underlying. Tx, Tx, Tx, Tx -
Call
0x46e822c5function of [D], sending all the funds to [A2]. Tx -
Send funds to various addresses, bridge back to Ethereum through Anyswap, and swap all the assests to DAI https://etherscan.io/address/0x562331d30B14310870E29eaD7a506c897E1d1657. Some funds were bridged to BSC https://bscscan.com/address/0xCEDAa447Fa9c41D660c2CeD408c7AD4c34c6C2d6.
- [A1] is funded by [V] in this Tx.
-
[A2] is funded by [A3]
0x526CD58d95BD09238AD629B60Da605d9Da85528ain this Tx. -
[A3] is funded in this Tx receiving some BNB. Then it used the faucet provided by SolarBeam to get some MOVR in this [Tx] (https://blockscout.moonriver.moonbeam.network/tx/0xf04f6043b1316d2db9c75e929303ed1d9e78bb8e74f72326cb68b5afa5d4f953).
-
Using Anyswap Explorere to view the bridging tx, https://anyswap.net/explorer/tx?params=0x72cf4ff3fb9f7df3502d4f738fdf8f8261509106cb84af9470dd88d65591a349 shows that the fund is send from BSC in this tx
0x7c56870c7ab2792a5cdd6eb69a58da48ff56c00664985bd88d1fcdf699d944bd. -
On BSC, [A3] is funded by this this Tx initialized by
0x835e5c4b6ab3c4554d5458827fae89c1e84040c8, which seems like a bridging service that only interacts with this bridge contract0x62f68f767ac07be54512dbb5b16a8075ff7e305b. -
That's where I am at right now. No idea how to trace further. Only know that the bridge contract is created by
0x40e0dcd7024030c7b5e1d474fe95aaf7bb880ad0, which also deployed the same bridge contract on 8 other chains. https://blockscan.com/address/0x40e0dcd7024030c7b5e1d474fe95aaf7bb880ad0. Will need to identify this service before we can dig deeper.
I made a copy of vault addresses listed on their doc. Note that this is may not be a complete list.
SAT-MOVR 0xAA01cef269314c955041f23D1B1354ed93F777d5
MOON-MOVR 0x41D755d5bD793FCc674f448868538402aCae6a93
MOON-USDC 0xF6562EdeC25DeEB39A01FB3ceFB56771B7c28d7A
MSWAP-MOVR 0x8F4396FA13AF5793cCD84De8698F28784856f35E
MSWAP-USDC 0xC4b84F336bD1b7E51819083fea5714171E5c7089
MOON 0xeC80d1Abd21b4169a776989b7acFee34Bc0C3bBb
MSWAP 0x5060E68233FB719aA15497197d701322727DDeF8
MOVR-USDC 0x5f1061FEF233868fF727504A0Db1Adb0FE968477
BNB-BUSD 0x3568210747794aA634636C04af2776de78A57a16
ETH-USDC 0xD520bAA5758B8257D155d75734d78a76afDB9A7f
USDT-USDC 0x7A73a183b674c48F12F5d68b092593971C769353
BUSD-USDC 0x6cE3725Fa4bEf09A7460Aa50A09496eB76c9A2D6
DAI-USDC 0x7126c12cCc8081E0c4A4e785FF4989ba59A2f9bF
TOOLS-MOVR 0xDCF39278d7f75cd2FBFCd85bebF09c9ec9d4C3a7
SOLAR-USDC 0xf830d40e4A46008Ac51c05573DeC04ff30a92830
I spent a lot of time and effort compiling these information. So if you find this investigation useful, please consider donating here 0x4E7dFCA58C1F967d28BC77BB9B612A9Cf5096157, all chains welcomed (Ethereum, Binance Smart Chain, Fantom, Polygon, Avalanche, Optimism, Arbitrum, Moonriver). It will be a big encouragement for me to keep doing this kind of thing and contribute to the community.