GGOODSMASH

🛡 SAFETY

How not to get robbed.

Nobody has ever lost anything here because of a bug in our contracts. The losses came from somewhere else: a fake interfacethat asked for an approval, and a key stored as plain text on a computer. This page is about those two things, because they are what actually takes people's assets.

Two rules we never break

  1. We will never message you first. Not on X, not on Telegram, not anywhere. If someone DMs you about this project, it is not us, whatever the profile picture says.
  2. We will never ask for your seed phrase or private key. Nothing legitimate ever needs them. Anyone who asks is stealing from you, and asking is the entire scam.

Our real addresses — Robinhood Chain · 4663

An attacker can deploy a contract at an address that looks like one of ours if you only read the first and last few characters. So compare the whole thing, or click through to the explorer and check it there.

RIGSThe 10,000 membership NFTs
0x1DFE1eE1BBa83152223e676f496feaE62406bB56
RigsStakingThe older staking (this one takes custody)
0x83dd2e7BF9AD6a96DCA7053F04084320fA90EA20
StakingV2No-custody staking — needs no NFT approval
0x8AfC872dccE24C75DF5Ae7f8E17dceB933Ee2F9F
GMTSThe points token
0x6ACCc41051F8A150E7728831e7490BD26264b6a3
SpecimenCertificateV2Rock title deeds
0x7c395966DCD146731aB2f59bbb7d0156bf9053A5
HolderLotteryV2The draw — needs no NFT approval
0x186f3710C3CA7Fd1D950feD966F2740090910E12
HolderStoreNFT-gated shop
0x7160be0bCf7dc9D5989dAe595401e9D2100c0D3d
MissionParticipationBadgeProof you joined a dig
0x2869C420F9bd1B234c7F6AfA8f55C9EA7E9b4Cbd
PerpetualEngineSquirrel Street machines
0x3f5032e14471B1BD615d7225fD37DCC1944FC381
FeeLoopRouterSplits sales fees
0x63118ecF62559f9BF469593f4127B227Cd22CDaE
TreasuryWhere sale money goes (a hardware wallet)
0x9111A15482A16827edC1c6F6E65CC46A7A95C08E

A quick sanity check that costs nothing: our addresses all start with 0x1DFE… (RIGS), 0x6ACC… (GMTS) and 0x9111… (treasury). If something asks you to approve a contract that is none of the above and none of the five named in the next section — stop.

Approvals: the thing that actually empties wallets

An approval is permission for a contract to move a specific token out of your wallet. Marketplaces need it; it is normal. The danger is that an approval has no expiry and no spending limit unless the contract chooses to add one — so once you have signed one, that contract can take that token at any time in the future, and you will not be asked again.

That is exactly how a wallet gets emptied weeks after the transaction where the mistake happened. The theft does not need a new signature. The signature you already gave is still sitting there.

Only these ever need an approval from you

  • RIGS — when you stake with the older staking contract. (The new no-custody staking needs no NFT approval at all.)
  • GMTS — when you lock a boost, or buy a specimen paying partly in GMTS.
  • The specimen certificate contract — when you buy a rock with USDG or GMTS.
  • OpenSea or Seaport — only when you list something for sale yourself.

Nothing else. If a page asks you to approve any other contract, it is not us, no matter how much it looks like us.

How to see and take back what you have given

  1. Open a revoke tool — revoke.cash is the well-known one — and connect the wallet you actually use.
  2. Switch it to Robinhood Chain · 4663.
  3. Read the list. Anything you do not recognise, revoke it. Revoking is a normal transaction and costs a small amount of gas.
  4. Revoking never unstakes anything, never moves an NFT, and never touches earned GMTS. It only removes permission. Nothing is lost by revoking.

Is this the real site?

  • We only ever link to it from our own accounts. A link in a DM, a comment, or a reply is not a link from us — check the domain letter by letter before you connect anything.
  • Real pages never ask for a seed phrase. Not to "validate", not to "migrate", not to "restore". There is no such feature and there never will be.
  • Be suspicious of urgency. "Before it expires", "last chance", "your wallet is at risk, act now" — the rush is the weapon. Nothing here is ever that urgent.
  • An unexpected mint or claim is bait. If you did not ask for it, it is a trap that exists to get one approval out of you.

If something has already gone wrong

  1. Move what is left, first. If the wallet is compromised, send remaining assets to a fresh wallet whose key has never touched that machine. Speed matters more than tidiness.
  2. Revoke every approval from the compromised wallet, even though it is now empty — it stops a future deposit being taken too.
  3. Do not pay a "recovery" fee. Nobody can reverse a blockchain transaction. Services promising to get your assets back are taking a second payment from the same victim.
  4. Write down what you signed, and when. The transaction hash, the contract, the site you were on. That record is the only thing that helps afterwards.
  5. Assume any key that was on that computer is gone forever. Do not reuse it, and do not reuse a key you have ever typed into a website.

What happened to us, plainly

In September a wallet belonging to this project was drained. The cause was a fake Uniswap interface that secured an unlimited approval, combined with a key that was stored as plain text on a computer. The contracts were never broken. Nobody exploited a bug in our code — they were invited in by a signature.

Everything since followed from that: real assets now live only on a hardware wallet, every contract we deploy has no owner and no rescue function so there is nothing for an attacker to seize even if a key leaks, and this page exists so the same trick does not work on you.

Why a leaked key cannot drain our contracts

Our vault contracts — the commitment vault, the token locker, the vesting vault and the barter contract — have no owner, no pause, no upgrade path and no rescue function. There is no administrative key that can redirect anything, because no such function was written. Verify it rather than taking our word for it: the source is public at github.com/goodsmash/goodsmash-vaults and the compiled contracts are readable on the explorer.

One honest limit: a contract with no owner can also never fix a mistake or recover a token sent to it by accident. That trade was made deliberately — a rescue function that saves one person's stray token is the same function that opens someone else's lock.

🔍 Every contract and address 🚦 Start here ✅ What is live

GOODSMASH // HOUSE OF ALPHA

Goodsmash House of Alpha is independent and is not affiliated with, sponsored by, or endorsed by Robinhood.