Install
openclaw skills install defi-security-auditAnalyze a DeFi protocol for vulnerabilities, mechanism safety, and risk factors. Use when the user wants to audit a DeFi project, check protocol security, or assess risk. Trigger words include "audit defi", "analyze protocol", "check security", "defi risk", "protocol vulnerability", "is it safe".
openclaw skills install defi-security-auditPerform a comprehensive security and mechanism analysis of a DeFi protocol. This skill systematically evaluates governance, oracle design, admin privileges, economic mechanisms, and historical risk factors.
The user provides one or more of:
Before deep analysis, run a quick triage to decide audit priority:
DeFiLlama data check: First, resolve the protocol name to the correct DeFiLlama slug (slugs are non-obvious, e.g., "maker" not "sky", "pancakeswap" not "pancake-swap"):
# Fetch all protocols and fuzzy-match by name
curl -s 'https://api.llama.fi/protocols' | jq -r '.[] | select(.name | test("{protocol}"; "i")) | "\(.slug) -- \(.name) -- TVL: \(.tvl)"'
If no match, try partial name or check the protocol's website for its DeFiLlama listing.
Then fetch full data with the resolved slug: curl -s 'https://api.llama.fi/protocol/{slug}' to get:
GoPlus token security check: If the protocol has a governance/utility token on an EVM chain, run ./scripts/goplus-check.sh token <chain_id> <contract_address> or call the API directly:
curl -s "https://api.gopluslabs.io/api/v1/token_security/<chain_id>?contract_addresses=<address>"
Extract these red flags from the response:
is_honeypot = 1 -- token is a honeypot (CRITICAL)honeypot_with_same_creator = 1 -- creator has deployed honeypots (CRITICAL)is_open_source = 0 -- contract not verified (HIGH)hidden_owner = 1 -- hidden ownership mechanism (HIGH)owner_change_balance = 1 -- owner can modify balances (HIGH)selfdestruct = 1 -- contract can self-destruct (HIGH)can_take_back_ownership = 1 -- can reclaim ownership after renouncing (HIGH)is_proxy = 1 -- upgradeable proxy (MEDIUM, cross-reference with Step 2)is_mintable = 1 -- unlimited minting possible (MEDIUM)slippage_modifiable = 1 -- owner can change tax/slippage (MEDIUM)transfer_pausable = 1 -- transfers can be paused (MEDIUM)is_blacklisted = 1 -- has blacklist functionality (MEDIUM)Also note: buy_tax, sell_tax, holder_count, lp_holders (lock status), and trust_list status.
Chain IDs: 1=Ethereum, 56=BSC, 137=Polygon, 42161=Arbitrum, 10=Optimism, 43114=Avalanche, 8453=Base, 324=zkSync. Solana is NOT supported by GoPlus token security API.
Solana token fallback: GoPlus does not support Solana SPL tokens. For Solana protocols, use these alternatives instead:
curl -s 'https://api.rugcheck.xyz/v1/tokens/{mint_address}/report' -- returns risk score, mutable metadata, freeze authority, mint authority, top holders, LP lock statuscurl -s -H 'X-API-KEY: public' 'https://public-api.birdeye.so/public/token_security?address={mint_address}' -- holder concentration, LP infoError handling: GoPlus is a free API with undocumented rate limits. If the API returns an error, empty result, or times out:
GoPlus address check (optional): If specific admin/deployer addresses are known, check for malicious history:
curl -s "https://api.gopluslabs.io/api/v1/address_security/<address>?chain_id=<chain_id>"
Flags: cybercrime, money_laundering, phishing_activities, stealing_attack, sanctioned, honeypot_related_address, malicious_mining_activities, number_of_malicious_contracts_created.
Immediate red flags (any = escalate to CRITICAL triage):
Quick Triage Score (compute for the report, 0-100):
Start at 100. Subtract EXACTLY the listed points for each flag that applies.
Do NOT adjust, round, or add mitigating bonuses -- the score is mechanical.
CRITICAL flags (-25 each):
[ ] GoPlus: is_honeypot = 1
[ ] GoPlus: honeypot_with_same_creator = 1
[ ] GoPlus: hidden_owner = 1
[ ] GoPlus: owner_change_balance = 1
[ ] TVL = $0
[ ] Admin/deployer address flagged as malicious
HIGH flags (-15 each):
[ ] Closed-source contracts (is_open_source = 0)
[ ] Zero audits listed on DeFiLlama
[ ] Anonymous team with no prior track record
[ ] GoPlus: selfdestruct = 1
[ ] GoPlus: can_take_back_ownership = 1
[ ] No multisig (single EOA admin key)
[ ] Single bridge provider for cross-chain deployments on 5+ chains (Kelp lesson)
MEDIUM flags (-8 each):
[ ] GoPlus: is_proxy = 1 AND no timelock on upgrades
[ ] GoPlus: is_mintable = 1
[ ] Protocol age < 6 months with TVL > $50M
[ ] TVL dropped > 30% in 90 days
[ ] Multisig threshold < 3 signers (e.g., 2/N)
[ ] GoPlus: slippage_modifiable = 1
[ ] GoPlus: transfer_pausable = 1
[ ] No third-party security certification (SOC 2 / ISO 27001 / equivalent) for off-chain operations
[ ] Bridge token accepted as lending collateral on 3+ protocols without rate limits
LOW flags (-5 each):
[ ] No documented timelock on admin actions
[ ] No bug bounty program
[ ] Single oracle provider
[ ] GoPlus: is_blacklisted = 1
[ ] Insurance fund / TVL < 1% or undisclosed
[ ] Undisclosed multisig signer identities
[ ] DAO governance paused or dissolved
[ ] No published key management policy (HSM, MPC, key ceremony)
[ ] No disclosed penetration testing (infrastructure, not just smart contract audit)
[ ] Custodial dependency without disclosed custodian certification
Floor at 0. Score meaning:
80-100 = LOW risk | 50-79 = MEDIUM | 20-49 = HIGH | 0-19 = CRITICAL
Data Confidence Score (compute alongside triage, 0-100):
Start at 0. Add points for each verified data point.
This measures HOW MUCH we could verify, not whether it's safe.
A high triage score with low confidence is MORE suspicious than a
moderate triage score with high confidence.
Verification points (+):
[ ] +15 Source code is open and verified on block explorer
[ ] +15 GoPlus token scan completed (not N/A or UNAVAILABLE)
[ ] +10 At least 1 audit report publicly available
[ ] +10 Multisig configuration verified on-chain (Safe API or Squads)
[ ] +10 Timelock duration verified on-chain or in docs
[ ] +10 Team identities publicly known (doxxed)
[ ] +10 Insurance fund size publicly disclosed
[ ] +5 Bug bounty program details publicly listed
[ ] +5 Governance process documented
[ ] +5 Oracle provider(s) confirmed
[ ] +5 Incident response plan published
[ ] +5 SOC 2 Type II or ISO 27001 certification verified
[ ] +5 Published key management policy (HSM, MPC, key ceremony)
[ ] +5 Regular penetration testing disclosed (infrastructure-level)
[ ] +5 Bridge DVN/verifier configuration publicly documented (if cross-chain)
Report both scores together: "Triage: 75/100 | Confidence: 40/100"
Interpretation:
80-100 = HIGH confidence (most claims verified)
50-79 = MEDIUM confidence (significant gaps remain)
0-49 = LOW confidence (most claims unverified -- treat score with skepticism)
Quantitative baselines (compute these for the report):
Insurance Fund / TVL ratio (healthy: >5%, concerning: <1%)Audit Coverage Score:
Sum across all known audits:
1.0 per audit less than 1 year old
0.5 per audit 1-2 years old
0.25 per audit older than 2 years
Risk thresholds: >= 3.0 = LOW | 1.5-2.99 = MEDIUM | < 1.5 = HIGH
Governance decentralization score: timelock hours + multisig threshold ratio + signer doxxingTVL trend: 7d, 30d, 90d change percentagesGoPlus risk flags: count of HIGH + MEDIUM flags from token security checkUse web search to collect the following. Run these specific queries (replace {protocol} with the protocol name):
"{protocol}" DeFi protocol overview"{protocol}" docs architecture OR contracts OR "smart contract""{protocol}" exploit OR hack OR vulnerability OR "security incident""{protocol}" site:rekt.news"{protocol}" audit report site:github.com"{protocol}" multisig OR timelock OR governance OR "admin key""{protocol}" site:immunefi.comAlso check DeFiLlama for current TVL and TVL trend data.
Evaluate the following and assign risk ratings (LOW / MEDIUM / HIGH / CRITICAL). Do NOT use compound ratings like "LOW-MEDIUM" -- pick exactly one level per category.
Timelock bypass detection (critical -- a timelock is only as strong as its bypass):
holders data if available from Step 0If the protocol's smart contracts are open source (GitHub or verified on block explorer), perform a targeted source code review. This is NOT a full line-by-line audit — it focuses on verifying governance claims from Step 2 and detecting high-impact vulnerability patterns.
Skip this step if: contracts are closed-source AND not verified on any block explorer.
Try these sources in order:
# Etherscan (Ethereum)
curl -s "https://api.etherscan.io/api?module=contract&action=getsourcecode&address=<address>&apikey=<key>"
# Arbiscan (Arbitrum)
curl -s "https://api.arbiscan.io/api?module=contract&action=getsourcecode&address=<address>&apikey=<key>"
"{protocol}" smart contracts site:github.comgithub.com/{org}/contracts, github.com/{org}/{protocol}-coreRecord source availability: "Full source (GitHub + verified)", "Partial (verified on explorer only)", "Closed source".
Search the source code for these patterns. Each finding should cross-reference the governance analysis from Step 2.
Owner/admin functions — search for functions that can modify critical state:
Search for: onlyOwner, onlyAdmin, onlyRole, onlyGovernance, _checkRole, requiresAuth
Search for: function set*, function update*, function change*, function pause, function unpause
Search for: function upgrade*, function migrate*, _authorizeUpgrade
For each admin function found, document:
Proxy upgrade pattern — identify which pattern is used:
Search for: TransparentUpgradeableProxy, UUPSUpgradeable, _authorizeUpgrade, ERC1967Upgrade
Search for: Diamond, DiamondCut, LibDiamond (EIP-2535)
Search for: Beacon, BeaconProxy, UpgradeableBeacon
_authorizeUpgrade for access controldiamondCutEmergency/bypass roles — verify claims about emergency powers:
Search for: emergency, guardian, pauser, EMERGENCY_ROLE, GUARDIAN_ROLE
Search for: delay, setDelay, updateDelay, minDelay, getMinDelay
Scan for these high-impact patterns:
Reentrancy:
Search for: .call{value:, .call(, (bool success,) =
Check: Is there a reentrancy guard (nonReentrant, ReentrancyGuard)?
Check: Does the contract follow checks-effects-interactions pattern?
Flag if: external calls are made before state updates, AND no reentrancy guard exists.
Oracle manipulation:
Search for: getPrice, latestAnswer, latestRoundData, getUnderlyingPrice, twap, TWAP
Search for: slot0 (Uniswap V3 spot price — manipulable via flash loans)
Flag if: spot price is used without TWAP protection, OR single oracle with no fallback.
Flash loan attack surface:
Search for: flashLoan, flashMint, IERC3156, IFlashLoanReceiver
Check: Can flash-loaned tokens be used as collateral or voting power in the same transaction?
Unchecked return values:
Search for: .transfer(, .send(, .approve(
Check: Are return values checked? (SafeERC20 usage = good)
Centralization in token contract:
Search for: mint(, burn(, _mint(, _burn(, blacklist, freeze, pause
Check: Who can call these? Is there a cap on minting?
This is the most important part. Compare what the code actually does vs. what the team/docs claim:
| Claim from Step 2 | Code verification | Match? |
|---|---|---|
| "48h timelock on upgrades" | Check: is timelock enforced in proxy admin? Can it be bypassed? | |
| "3/5 multisig controls admin" | Check: is the admin address actually the claimed multisig? | |
| "Oracle uses Chainlink" | Check: is Chainlink actually imported and used? Any fallback? | |
| "Insurance fund covers bad debt" | Check: does the liquidation flow actually transfer to insurance fund? | |
| "Immutable core contracts" | Check: are there really no upgrade functions? No selfdestruct? |
Record any discrepancies as HIGH or CRITICAL findings.
Add to the Smart Contract Security section of the risk report:
#### Source Code Review
**Source availability**: [Full/Partial/Closed]
**Contracts reviewed**: [list of key contracts and addresses]
**Admin function inventory**:
| Function | Contract | Access Control | Timelock? | Impact |
|----------|----------|---------------|-----------|--------|
**Vulnerability scan**:
| Pattern | Found? | Details | Severity |
|---------|--------|---------|----------|
**Governance claim verification**:
| Claim | Code evidence | Verified? |
|-------|-------------|-----------|
**Source code review conclusion**: [summary of findings]
Skip this step if the protocol operates on a single chain with no bridge dependencies.
On-chain security can be verified by reading contracts. Off-chain controls (key management, operational procedures, access controls) CANNOT be verified from public blockchain data alone -- they require third-party attestation.
Evaluate the following. Search: "{protocol}" SOC 2 OR ISO 27001 OR "security certification" OR "key management" OR "penetration test"
Rating guidance:
Run automated on-chain checks using ./scripts/onchain-check.sh. Execute ALL applicable checks for the protocol's chain(s). Record every result in the report; mark anything the script could not determine as "UNVERIFIED".
Gnosis Safe multisig verification -- if admin/owner/treasury addresses are known and suspected to be a Safe:
./scripts/onchain-check.sh safe <safe_address> <chain>
# chain: ethereum, arbitrum, polygon, optimism, base, gnosis, avalanche, bsc, scroll, linea, zksync, celo
Extract from the output: threshold (m/n), owner count, owner addresses, modules, guard.
Contract verification & proxy detection -- for key contract addresses (token, proxy admin, timelock):
./scripts/onchain-check.sh etherscan <contract_address> <chain_id> [ETHERSCAN_API_KEY]
# Reads ETHERSCAN_API_KEY env var if not passed as argument
# chain_id: 1=Ethereum, 56=BSC, 137=Polygon, 42161=Arbitrum, 10=Optimism, 8453=Base
Extract: source verification status, proxy status, implementation address.
Program upgrade authority -- for each program ID:
./scripts/onchain-check.sh solana-program <program_id>
Extract: upgrade authority address, frozen status.
Authority account type -- for the upgrade authority address:
./scripts/onchain-check.sh solana-account <authority_address>
Detects whether the authority is:
Compile findings into a structured report:
# DeFi Security Audit: {Protocol Name}
## Overview
- Protocol: {name}
- Chain: {chain}
- Type: {type}
- TVL: {tvl}
- TVL Trend: {7d}% / {30d}% / {90d}%
- Launch Date: {date}
- Audit Date: {today}
- Valid Until: {today + 90 days} (or sooner if: TVL changes >30%, governance upgrade, or security incident)
- Source Code: Open / Closed / Partial
## Quick Triage Score: {0-100} | Data Confidence: {0-100}
- Red flags found: {count} ({list})
- Data points verified: {count} / {total checkable}
## Quantitative Metrics
| Metric | Value | Benchmark (peers) | Rating |
|--------|-------|--------------------|--------|
| Insurance Fund / TVL | {x}% | {peer avg}% | {rating} |
| Audit Coverage Score | {x} | {peer avg} | {rating} |
| Governance Decentralization | {x} | {peer avg} | {rating} |
| Timelock Duration | {x}h | {peer avg}h | {rating} |
| Multisig Threshold | {m/n} | {peer avg} | {rating} |
| GoPlus Risk Flags | {high_count} HIGH / {med_count} MED | -- | {rating} |
## GoPlus Token Security (if EVM token available)
| Check | Result | Risk |
|-------|--------|------|
| Honeypot | {is_honeypot} | |
| Open Source | {is_open_source} | |
| Proxy | {is_proxy} | |
| Mintable | {is_mintable} | |
| Owner Can Change Balance | {owner_change_balance} | |
| Hidden Owner | {hidden_owner} | |
| Selfdestruct | {selfdestruct} | |
| Transfer Pausable | {transfer_pausable} | |
| Blacklist | {is_blacklisted} | |
| Slippage Modifiable | {slippage_modifiable} | |
| Buy Tax / Sell Tax | {buy_tax}% / {sell_tax}% | |
| Holders | {holder_count} | |
| Trust List | {trust_list} | |
| Creator Honeypot History | {honeypot_with_same_creator} | |
## Risk Summary
| Category | Risk Level | Key Concern | Source | Verified? |
|----------|-----------|-------------|--------|-----------|
| Governance & Admin | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Oracle & Price Feeds | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Economic Mechanism | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Smart Contract | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Token Contract (GoPlus) | {LOW/MEDIUM/HIGH/CRITICAL/N/A} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Cross-Chain & Bridge | {LOW/MEDIUM/HIGH/CRITICAL/N/A} | {one-line} | {S/H/O} | {Y/N/Partial} |
| Off-Chain Security | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {O} | {Y/N/Partial} |
| Operational Security | {LOW/MEDIUM/HIGH/CRITICAL} | {one-line} | {S/H/O} | {Y/N/Partial} |
| **Overall Risk** | **{level}** | **{summary}** | | |
**Source column**: S = STRUCTURAL (current architecture risk), H = HISTORICAL (past incident signal), O = OPERATIONAL (off-chain controls risk). A category can have multiple sources (e.g., S/H).
**Overall Risk aggregation rule** (mechanical -- do NOT override with judgment):
Governance & Admin counts as 2x weight (i.e., HIGH governance alone = 2 HIGHs → Overall HIGH). Cross-Chain & Bridge counts as 2x weight if protocol is deployed on 5+ chains (Kelp lesson). Categories rated N/A are excluded from the count.
## Detailed Findings
### 1. Governance & Admin Key
{detailed analysis with specific findings}
### 2. Oracle & Price Feeds
{detailed analysis}
### 3. Economic Mechanism
{detailed analysis}
### 4. Smart Contract Security
{detailed analysis}
### 5. Cross-Chain & Bridge (if applicable)
{detailed analysis -- omit section if single-chain with no bridge dependencies}
### 6. Operational Security
{detailed analysis}
## Critical Risks (if any)
- {numbered list of CRITICAL or HIGH findings that could lead to fund loss}
## Peer Comparison
| Feature | {This Protocol} | {Peer 1} | {Peer 2} |
|---------|----------------|----------|----------|
| Timelock | | | |
| Multisig | | | |
| Audits | | | |
| Oracle | | | |
| Insurance/TVL | | | |
| Open Source | | | |
## Recommendations
- {actionable suggestions for users}
## Historical DeFi Hack Pattern Check
Cross-reference against known DeFi attack vectors:
### Drift-type (Governance + Oracle + Social Engineering):
- [ ] Admin can list new collateral without timelock?
- [ ] Admin can change oracle sources arbitrarily?
- [ ] Admin can modify withdrawal limits?
- [ ] Multisig has low threshold (2/N with small N)?
- [ ] Zero or short timelock on governance actions?
- [ ] Pre-signed transaction risk (durable nonce on Solana)?
- [ ] Social engineering surface area (anon multisig signers)?
### Euler/Mango-type (Oracle + Economic Manipulation):
- [ ] Low-liquidity collateral accepted?
- [ ] Single oracle source without TWAP?
- [ ] No circuit breaker on price movements?
- [ ] Insufficient insurance fund relative to TVL?
### Ronin/Harmony-type (Bridge + Key Compromise):
- [ ] Bridge dependency with centralized validators?
- [ ] Admin keys stored in hot wallets?
- [ ] No key rotation policy?
### Beanstalk-type (Flash Loan Governance Attack):
- [ ] Governance votes weighted by token balance at vote time (no snapshot)?
- [ ] Flash loans can be used to acquire voting power?
- [ ] Proposal + execution in same block or short window?
- [ ] No minimum holding period for voting eligibility?
### Cream/bZx-type (Reentrancy + Flash Loan):
- [ ] Accepts rebasing or fee-on-transfer tokens as collateral?
- [ ] Read-only reentrancy risk (cross-contract callbacks before state update)?
- [ ] Flash loan compatible without reentrancy guards?
- [ ] Composability with protocols that expose callback hooks?
### Curve-type (Compiler / Language Bug):
- [ ] Uses non-standard or niche compiler (Vyper, Huff)?
- [ ] Compiler version has known CVEs?
- [ ] Contracts compiled with different compiler versions?
- [ ] Code depends on language-specific behavior (storage layout, overflow)?
### UST/LUNA-type (Algorithmic Depeg Cascade):
- [ ] Stablecoin backed by reflexive collateral (own governance token)?
- [ ] Redemption mechanism creates sell pressure on collateral?
- [ ] Oracle delay could mask depegging in progress?
- [ ] No circuit breaker on redemption volume?
### Kelp-type (Bridge Message Spoofing + Composability Cascade):
- [ ] Protocol uses a cross-chain bridge (LayerZero, Wormhole, etc.) for token minting or reserve release?
- [ ] Bridge message validation relies on a single messaging layer without independent verification?
- [ ] DVN/relayer/verifier configuration is not publicly documented or auditable?
- [ ] Bridge can release or mint tokens without rate limiting per transaction or per time window?
- [ ] Bridged/wrapped token is accepted as collateral on lending protocols (Aave, Compound, Euler)?
- [ ] No circuit breaker to pause minting if bridge-released volume exceeds normal thresholds?
- [ ] Emergency pause response time > 15 minutes (Kelp took 46 minutes)?
- [ ] Bridge admin controls (trusted remotes, rate limits) are under different governance than core protocol?
- [ ] Token is deployed on 5+ chains via same bridge provider (single point of failure)?
**Why this pattern matters**: The attacker does not need to keep the stolen tokens. By depositing unbacked tokens as collateral in lending protocols and borrowing real assets (ETH, USDC), the damage cascades far beyond the initially exploited protocol. In the Kelp hack ($292M, April 2026), the attacker created $290M+ in bad debt across Aave, Compound, and Euler -- affecting protocols that were never directly exploited.
**Trigger rule**: matching 3+ indicators in any single category triggers an explicit warning in the report.
## Information Gaps
- {list of questions that could NOT be answered from public info}
- {these represent unknown risks -- absence of evidence is not evidence of absence}
## Disclaimer
This analysis is based on publicly available information and web research.
It is NOT a formal smart contract audit. Always DYOR and consider
professional auditing services for investment decisions.
Output the complete report to the user. Highlight any CRITICAL or HIGH risk items prominently. If the protocol has characteristics similar to the Drift hack pattern (weak admin controls, no timelock, flexible oracle assignment), explicitly call this out.
https://api.llama.fi/protocol/{slug}https://api.llama.fi/protocolshttps://yields.llama.fi/poolsBase URL: https://api.gopluslabs.io/api/v1
| Endpoint | Description |
|---|---|
token_security/{chain_id}?contract_addresses={addr} | Token risk profile (honeypot, owner powers, tax, holders, LP) |
address_security/{addr}?chain_id={chain_id} | Malicious address flags (phishing, sanctions, cybercrime) |
approval_security/{chain_id}?contract_addresses={addr} | Contract approval risk (privilege_withdraw, approval_abuse) |
nft_security/{chain_id}?contract_addresses={addr} | NFT-specific risks (privileged mint/burn, copycat detection) |
dapp_security?url={url} | dApp audit status and contract security |
rugpull_detecting/{chain_id}?contract_addresses={addr} | Rug-pull risk detection (Beta) |
supported_chains | List of supported chains and chain IDs |
Chain IDs: 1=Ethereum, 56=BSC, 137=Polygon, 42161=Arbitrum, 10=Optimism, 43114=Avalanche, 8453=Base, 324=zkSync, 59144=Linea, 534352=Scroll.
Helper script: ./scripts/goplus-check.sh wraps these endpoints with formatted output. See ./scripts/goplus-check.sh --help for usage.
Use curl via bash to fetch these programmatically when browser data is hard to extract.
Helper script: ./scripts/onchain-check.sh wraps the APIs below with formatted output and risk assessment.
| Chain | Base URL |
|---|---|
| Ethereum | https://safe-transaction-mainnet.safe.global/api/v1 |
| Arbitrum | https://safe-transaction-arbitrum.safe.global/api/v1 |
| Polygon | https://safe-transaction-polygon.safe.global/api/v1 |
| Optimism | https://safe-transaction-optimism.safe.global/api/v1 |
| Base | https://safe-transaction-base.safe.global/api/v1 |
| BSC | https://safe-transaction-bsc.safe.global/api/v1 |
| Endpoint | Description |
|---|---|
safes/{address}/ | Multisig config: threshold, owners[], nonce, modules, guard, version |
| Chain ID | API Base URL |
|---|---|
| 1 (Ethereum) | https://api.etherscan.io/api |
| 56 (BSC) | https://api.bscscan.com/api |
| 137 (Polygon) | https://api.polygonscan.com/api |
| 42161 (Arbitrum) | https://api.arbiscan.io/api |
| 10 (Optimism) | https://api-optimistic.etherscan.io/api |
| 8453 (Base) | https://api.basescan.org/api |
| Endpoint | Description |
|---|---|
?module=contract&action=getsourcecode&address={addr} | Source verification, proxy status, implementation, compiler |
https://api.mainnet-beta.solana.com (or set SOLANA_RPC_URL env var)getAccountInfo (JSON-RPC POST) -- returns owner program, executable status, account datasolana CLI if available (solana program show gives upgrade authority directly)| Endpoint | Description |
|---|---|
https://api.solana.fm/v0/accounts/{address} | Account label, owner program, type detection |
Known Squads program IDs (for detecting multisig accounts):
SMPLecH534Ngo6gTACwFvEq4QYHGBqR1sFoJGDhrknp, SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCfSMPLKTQhrgo22hFCVq2VGX1KAktTWjeizkhrdB1eauK