SixStar for projects

For projects, developers and support teams

A user says their tokens are stuck. Answer it in one paste.

Paste what the user sent you. We'll tell you who can move the funds, your team or the user, and the exact call to make. It only reads the chain: it can never sign or send a transaction. The check needs no account and no payment.

We look up a transaction hash on all 8 main networks, not the test networks. The network you pick applies to addresses only.

Pause readiness

Who can pause your contract

Before something goes wrong, find out whether your contract can be paused, who holds that power, and how many signatures it takes.

Read-only. No account, no cost.

A check shows what the chain answered when it was read. It is not an audit of the contract.

Alerts when any of these change are on our roadmap for teams. See the roadmap

Signing check

Before you approve a Safe transaction, see what it really does, worked out in this page and not on the wallet screen. The only lookup is the called contract's verified source, to name the function.

Read-only. No account, no cost. We never hold a key.

Network
Operation
Operation
Gas and refund fields
Gas and refund fields

Addresses this Safe has paid before, one per line. Used only to spot a look-alike address.

See what users sent to your contract by mistake

Paste a contract you run and we'll list the tokens stuck in it.

Part of the paid plans.

Show

Your token, vault or router address, as shown on your block explorer.

Watch your contract

We'll message you on Telegram or Discord when a user sends tokens to your contract by mistake, often before they open a ticket.

Part of the paid plans.

One contract per watch.

By default we watch all 8 main networks, and you can add the test networks.

You set an alert level for each token, in token amounts: 5 tokens on Ethereum, plus the network's own coin.

No alert doesn't always mean nothing arrived. Every alert says how many tokens and networks were checked.

Put it in your own stack

No key, no account, no call home.

SDK

Run the same diagnosis inside your own support tooling.

import { devmode } from '@sixstar/core'

const r = await devmode.diagnose({ address, chainId })

r.verdict      // TEAM | UPGRADEABLE_NO_FN | THE_USER | CUSTODIAN | NO_PATH | …
r.whoCanAct    // { role, kind, address?, citation? }
r.upgradeable  // { kind, authority } | null
r.abiStatus    // VERIFIED_FULL | VERIFIED_PARTIAL | UNVERIFIED | FETCH_FAILED
r.coverage     // every read, what answered, what did not
r.remediation  // CALL | UPGRADE_PATH | HAND_OVER_ONLY | NONE

CLI

Same engine, no browser. Exits non-zero when nothing is recoverable.

git clone https://gitlab.com/sixstarlab/sixstar-recovery.git
cd sixstar-recovery
pnpm install --frozen-lockfile
pnpm exec turbo run build --filter=@sixstar/recovery-cli...
node apps/recovery-cli/dist/cli.js check <address|tx> --chain <id>

# a whole support queue
node apps/recovery-cli/dist/cli.js batch tickets.csv --json > out.json

install it from the public repository

Tested with Node 20 and pnpm 9.

Support-docs widget

One line in your help centre.

<script src="/embed.js" data-chain="8453" defer></script>

the only requests it makes are public RPC reads and loading this script

/embed.js publishes with the first release

Talk to us

Questions about setting it up, or think we got a verdict wrong?

Group
t.me/sixstarrecoverypublic, for teams, developers and projects
Anything private
contact@sixstarlab.comFor anything private, like a data request or a takedown.

An empty table means we found nothing among the tokens we check, not that the contract is empty.