Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls.
Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted.
Security Indicators:
mintable: false = Mint authority renounced (supply is fixed) ✅
mintable: true = Token supply can still be increased ⚠️
freezable: true = Accounts can be frozen by issuer ⚠️
Performance:
First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response)
Cached calls: Fast response (~0.5 seconds)
Cache TTL: 5 minutes
Fees:
buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three
pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool
buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0
pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM
total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown
A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5
GET
/
trading-lite
/
{address}
Get simplified token analysis with security indicators
curl --request GET \ --url https://api.webacy.com/trading-lite/{address} \ --header 'x-api-key: <api-key>'
Token mint address (Solana) or ERC-20 contract address (EVM chains)
Query Parameters
chain
enum<string>
required
Blockchain identifier. sol returns TradingLiteAnalysis; the EVM chains return TradingLiteEvmAnalysis.
Available options:
sol,
eth,
base,
bsc,
arb,
robinhood
refreshCache
boolean
Force refresh cached analysis data
Response
Success
Option 1
Option 2
Lightweight trading analysis including sniper and bundler detection for early token activity
CA
string
required
Contract address of the token
DA
string
required
Deployer address
Top10Holders
number
required
Percentage held by the top 10 holders at analysis time
SniperPercentageOnLaunch
number
required
Percentage of supply acquired by snipers at launch
SniperAddresses
object[]
required
Addresses flagged as potential snipers
Show child attributes
BundlerAddresses
object[]
required
Addresses flagged as coordinated buyers/bundlers
Show child attributes
SniperPercentageHolding
number
required
Current percentage of supply held by snipers
SniperConfidence
number | null
required
Confidence score (0-100) for sniper detection
BundlerPercentageOnLaunch
number
required
Percentage of supply acquired by bundlers at launch
BundlerPercentageHolding
number
required
Current percentage of supply held by bundlers
TotalHolders
number
required
Total number of holders at analysis time
DexScreenerPaid
boolean
required
Whether the project has paid for DexScreener promotion
DevHoldingPercentage
number
required
Current holding percentage of the deployer/developer
DevLaunched24Hours
number
required
Number of tokens launched by the deployer in the last 24 hours
mintable
boolean
required
Whether the token can still be minted. True if mint authority is not renounced. False indicates the token supply is permanently fixed.
freezable
boolean
required
Whether token accounts can be frozen. True if freeze authority is not renounced. False indicates accounts cannot be frozen by the issuer.
buy_sell_taxes
object
required
Token-level transfer tax from the Token-2022 transfer_fee_config extension, charged on every transfer: buys, sells and plain wallet-to-wallet transfers all pay the same rate. details.buy_sell_taxes shape from GET /addresses/{address} plus has_transfer_tax / transfer_tax_percentage. Percentages are 0-100.
Show child attributes
pool_fees
object
required
Fees of the primary Raydium pool. null when Raydium lists no pool for the token (for example while it is still on a pump.fun bonding curve) or when the lookup failed.
Option 1
Option 2
Show child attributes
lastAnalyzedSlot
number | null
Last analyzed slot number from the bundling/sniper detection. Used by real-time monitoring to know where to start listening from.
analysisTimestamp
number | null
Timestamp (milliseconds since epoch) when this analysis was performed. Used for cache invalidation and freshness checks.
total_effective_fee_percentage
number
What a trader pays in total: transfer fee + pool trade fee + creator fee, as a percentage. Omitted when pool_fees is null.
Example:
4.25
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Webacy Docs","colors":{"primary":"#00d66f","light":"#33cb8b","dark":"#279b71"},"logo":{"light":"https://mintcdn.com/webacy/PZHkbk8qJrPsQSaC/logo/light.png?fit=max\u0026auto=format\u0026n=PZHkbk8qJrPsQSaC\u0026q=85\u0026s=c1933879883f6b01ff46a6e51cfd687f","dark":"https://mintcdn.com/webacy/cDgYsLUzSZsNJNEk/logo/dark.svg?fit=max\u0026auto=format\u0026n=cDgYsLUzSZsNJNEk\u0026q=85\u0026s=e8da7717da0f291d63cc90a4cb4a91af"},"favicon":"https://mintcdn.com/webacy/LaWycqKCQaZgOW1n/favicon.ico?fit=max\u0026auto=format\u0026n=LaWycqKCQaZgOW1n\u0026q=85\u0026s=2a29ac070865d3fb96939b7c595406f9","api":{},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://dapp.webacy.com"}},"footer":{"socials":{"x":"https://x.com/mywebacy","github":"https://github.com/Webacy-Prod"}},"contextual":{"options":["copy","claude","chatgpt","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"webacy","hasAudioNarration":false,"actualSubdomain":"webacy","customDomains":["docs.webacy.com"],"gitSource":{"type":"github","owner":"webacy-prod","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af62704872f0a825f98c69f","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"Build","count":61},{"language":"default","tag":"API Reference","count":49},{"language":"default","tag":"Overview","count":29},{"language":"default","tag":"Glossary","count":25},{"language":"default","tag":"Risk Intelligence","count":21},{"language":"default","tag":"Learn","count":18},{"language":"default","tag":"Integrations","count":15},{"language":"default","tag":"Stablecoins","count":11},{"language":"default","tag":"Contract Security","count":9},{"language":"default","tag":"SDK","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".gb{display:inline-block;min-width:2.2em;padding:2px 9px;border-radius:6px;font-weight:700;font-size:0.85em;line-height:1.35;text-align:center;letter-spacing:0.02em;white-space:nowrap}.gb-a{background:#047857;color:#ffffff}.gb-b{background:#1d4ed8;color:#ffffff}.gb-c{background:#f59e0b;color:#1f2937}.gb-d{background:#c2410c;color:#ffffff}.gb-f{background:#b91c1c;color:#ffffff}"}],"page":{"pagePath":"api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators","slug":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators","pageMetadata":{"title":"Get Solana token risk with security indicators","openapi":"GET /trading-lite/{address}","description":"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls.\n\n**Chains:** Solana (`sol`) returns the full analysis (`TradingLiteAnalysis`). EVM chains (`eth`, `base`, `bsc`, `arb`, `robinhood`) return the holder distribution and the fee block only (`TradingLiteEvmAnalysis`): bundler, sniper, developer, `mintable`/`freezable` and `lastAnalyzedSlot` are Solana-only and are omitted.\n\n**Security Indicators:**\n- `mintable: false` = Mint authority renounced (supply is fixed) ✅\n- `mintable: true` = Token supply can still be increased ⚠️\n- `freezable: false` = Freeze authority renounced (accounts cannot be frozen) ✅\n- `freezable: true` = Accounts can be frozen by issuer ⚠️\n\n**Performance:**\n- First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response)\n- Cached calls: Fast response (~0.5 seconds)\n- Cache TTL: 5 minutes\n\n**Fees:**\n- `buy_sell_taxes` — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (`has_transfer_tax` / `transfer_tax_percentage`); same rate on all three\n- `pool_fees` — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; `null` when the token has no Raydium pool\n- `total_effective_fee_percentage` — transfer fee (counted once) + trade fee + creator fee\n\n**Fees on EVM chains:**\n- `buy_sell_taxes` — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet `transfer()` from a current holder and comparing the amount received with the amount sent. Each leg is independent: `has_buy_tax` / `has_sell_tax` / `has_transfer_tax` is `null` when that leg could not be measured (no pair, the simulation reverted, provider unavailable), `false` when it was measured as 0\n- `pool_fees` — swap fee of the highest-liquidity pool: read on-chain from `fee()` for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). `null` when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). `creator_fee_percentage` is never set on EVM\n- `total_effective_fee_percentage` — buy tax + pool fee (the cost of a buy). Omitted when either is unknown\n- A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5","href":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Chains:\"\n }), \" Solana (\", _jsx(_components.code, {\n children: \"sol\"\n }), \") returns the full analysis (\", _jsx(_components.code, {\n children: \"TradingLiteAnalysis\"\n }), \"). EVM chains (\", _jsx(_components.code, {\n children: \"eth\"\n }), \", \", _jsx(_components.code, {\n children: \"base\"\n }), \", \", _jsx(_components.code, {\n children: \"bsc\"\n }), \", \", _jsx(_components.code, {\n children: \"arb\"\n }), \", \", _jsx(_components.code, {\n children: \"robinhood\"\n }), \") return the holder distribution and the fee block only (\", _jsx(_components.code, {\n children: \"TradingLiteEvmAnalysis\"\n }), \"): bundler, sniper, developer, \", _jsx(_components.code, {\n children: \"mintable\"\n }), \"/\", _jsx(_components.code, {\n children: \"freezable\"\n }), \" and \", _jsx(_components.code, {\n children: \"lastAnalyzedSlot\"\n }), \" are Solana-only and are omitted.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Security Indicators:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"mintable: false\"\n }), \" = Mint authority renounced (supply is fixed) ✅\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"mintable: true\"\n }), \" = Token supply can still be increased ⚠️\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"freezable: false\"\n }), \" = Freeze authority renounced (accounts cannot be frozen) ✅\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"freezable: true\"\n }), \" = Accounts can be frozen by issuer ⚠️\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Performance:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Cached calls: Fast response (~0.5 seconds)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Cache TTL: 5 minutes\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Fees:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"buy_sell_taxes\"\n }), \" — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (\", _jsx(_components.code, {\n children: \"has_transfer_tax\"\n }), \" / \", _jsx(_components.code, {\n children: \"transfer_tax_percentage\"\n }), \"); same rate on all three\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"pool_fees\"\n }), \" — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; \", _jsx(_components.code, {\n children: \"null\"\n }), \" when the token has no Raydium pool\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"total_effective_fee_percentage\"\n }), \" — transfer fee (counted once) + trade fee + creator fee\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Fees on EVM chains:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"buy_sell_taxes\"\n }), \" — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet \", _jsx(_components.code, {\n children: \"transfer()\"\n }), \" from a current holder and comparing the amount received with the amount sent. Each leg is independent: \", _jsx(_components.code, {\n children: \"has_buy_tax\"\n }), \" / \", _jsx(_components.code, {\n children: \"has_sell_tax\"\n }), \" / \", _jsx(_components.code, {\n children: \"has_transfer_tax\"\n }), \" is \", _jsx(_components.code, {\n children: \"null\"\n }), \" when that leg could not be measured (no pair, the simulation reverted, provider unavailable), \", _jsx(_components.code, {\n children: \"false\"\n }), \" when it was measured as 0\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"pool_fees\"\n }), \" — swap fee of the highest-liquidity pool: read on-chain from \", _jsx(_components.code, {\n children: \"fee()\"\n }), \" for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). \", _jsx(_components.code, {\n children: \"null\"\n }), \" when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). \", _jsx(_components.code, {\n children: \"creator_fee_percentage\"\n }), \" is never set on EVM\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"total_effective_fee_percentage\"\n }), \" — buy tax + pool fee (the cost of a buy). Omitted when either is unknown\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\"\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get Solana token risk with security indicators","openapi":"GET /trading-lite/{address}","description":"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls.\n\n**Chains:** Solana (`sol`) returns the full analysis (`TradingLiteAnalysis`). EVM chains (`eth`, `base`, `bsc`, `arb`, `robinhood`) return the holder distribution and the fee block only (`TradingLiteEvmAnalysis`): bundler, sniper, developer, `mintable`/`freezable` and `lastAnalyzedSlot` are Solana-only and are omitted.\n\n**Security Indicators:**\n- `mintable: false` = Mint authority renounced (supply is fixed) ✅\n- `mintable: true` = Token supply can still be increased ⚠️\n- `freezable: false` = Freeze authority renounced (accounts cannot be frozen) ✅\n- `freezable: true` = Accounts can be frozen by issuer ⚠️\n\n**Performance:**\n- First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response)\n- Cached calls: Fast response (~0.5 seconds)\n- Cache TTL: 5 minutes\n\n**Fees:**\n- `buy_sell_taxes` — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (`has_transfer_tax` / `transfer_tax_percentage`); same rate on all three\n- `pool_fees` — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; `null` when the token has no Raydium pool\n- `total_effective_fee_percentage` — transfer fee (counted once) + trade fee + creator fee\n\n**Fees on EVM chains:**\n- `buy_sell_taxes` — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet `transfer()` from a current holder and comparing the amount received with the amount sent. Each leg is independent: `has_buy_tax` / `has_sell_tax` / `has_transfer_tax` is `null` when that leg could not be measured (no pair, the simulation reverted, provider unavailable), `false` when it was measured as 0\n- `pool_fees` — swap fee of the highest-liquidity pool: read on-chain from `fee()` for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). `null` when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). `creator_fee_percentage` is never set on EVM\n- `total_effective_fee_percentage` — buy tax + pool fee (the cost of a buy). Omitted when either is unknown\n- A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5","href":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get simplified token analysis with security indicators","description":"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls.\n\n**Chains:** Solana (`sol`) returns the full analysis (`TradingLiteAnalysis`). EVM chains (`eth`, `base`, `bsc`, `arb`, `robinhood`) return the holder distribution and the fee block only (`TradingLiteEvmAnalysis`): bundler, sniper, developer, `mintable`/`freezable` and `lastAnalyzedSlot` are Solana-only and are omitted.\n\n**Security Indicators:**\n- `mintable: false` = Mint authority renounced (supply is fixed) ✅\n- `mintable: true` = Token supply can still be increased ⚠️\n- `freezable: false` = Freeze authority renounced (accounts cannot be frozen) ✅\n- `freezable: true` = Accounts can be frozen by issuer ⚠️\n\n**Performance:**\n- First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response)\n- Cached calls: Fast response (~0.5 seconds)\n- Cache TTL: 5 minutes\n\n**Fees:**\n- `buy_sell_taxes` — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (`has_transfer_tax` / `transfer_tax_percentage`); same rate on all three\n- `pool_fees` — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; `null` when the token has no Raydium pool\n- `total_effective_fee_percentage` — transfer fee (counted once) + trade fee + creator fee\n\n**Fees on EVM chains:**\n- `buy_sell_taxes` — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet `transfer()` from a current holder and comparing the amount received with the amount sent. Each leg is independent: `has_buy_tax` / `has_sell_tax` / `has_transfer_tax` is `null` when that leg could not be measured (no pair, the simulation reverted, provider unavailable), `false` when it was measured as 0\n- `pool_fees` — swap fee of the highest-liquidity pool: read on-chain from `fee()` for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). `null` when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). `creator_fee_percentage` is never set on EVM\n- `total_effective_fee_percentage` — buy tax + pool fee (the cost of a buy). Omitted when either is unknown\n- A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5","operationId":"getTradingLite","tags":["trading-lite"],"parameters":["29a4064a-7baa-45cc-816f-9d3cce4d01ab","69803c95-1232-4a44-90e8-3156a508ca02","a5408fbf-f615-4412-bce2-93005f891369"],"responses":{"200":"4d671b59-6c40-4af0-9d7f-1c73424e7d9b","400":"8d28b2a2-c4b2-4970-9018-ce89232be87f","401":"0359d50f-06f8-4a6b-9164-9df75ec5f87a","402":"ed45c742-cd62-4513-967d-ea214378c4c9","404":"3a0737e0-4d2a-4912-a772-ab8e48e7b3c9","422":"a2b4620b-8f06-493c-bbe0-72ef6d255185","503":"4b157fbf-528d-4f8f-993d-25b150aa1759"},"security":["9f66093f-48ba-4a61-87a4-8676d977dfa7"],"method":"get","type":"path","servers":["383ee277-cc3e-4c5b-9060-26029d813c28","46e953d9-23d0-4ded-9dfe-145619c5b88e","1c0a4a80-cff4-4732-8bb4-c1d6ddfb5c04"],"path":"/trading-lite/{address}","baseUrlOptions":["https://api.webacy.com","https://api-development.webacy.com","http://0.0.0.0:3030/api/v1/risk-score"],"title":"Get simplified token analysis with security indicators","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"29a4064a-7baa-45cc-816f-9d3cce4d01ab":{"name":"address","in":"path","required":true,"description":"Token mint address (Solana) or ERC-20 contract address (EVM chains)","schema":{"type":"string","isRequired":true,"description":"Token mint address (Solana) or ERC-20 contract address (EVM chains)","uniqueKey":"","typeLabel":"string"}},"69803c95-1232-4a44-90e8-3156a508ca02":{"in":"query","name":"chain","description":"Blockchain identifier. `sol` returns TradingLiteAnalysis; the EVM chains return TradingLiteEvmAnalysis.","required":true,"schema":{"type":"string","enum":["sol","eth","base","bsc","arb","robinhood"],"isRequired":true,"description":"Blockchain identifier. `sol` returns TradingLiteAnalysis; the EVM chains return TradingLiteEvmAnalysis.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"example":"sol"},"a5408fbf-f615-4412-bce2-93005f891369":{"in":"query","name":"refreshCache","description":"Force refresh cached analysis data","required":false,"schema":{"type":"boolean","isRequired":false,"description":"Force refresh cached analysis data","uniqueKey":"","typeLabel":"boolean"}}},"responses":{"4d671b59-6c40-4af0-9d7f-1c73424e7d9b":{"headers":{"x-credit-token":{"description":"Opaque bearer token for a prepaid x402 CU balance. Send it as `x-credit-token` to spend that balance. If the balance is insufficient and a payment for its verified payer settles, the same token is topped up and returned; otherwise the paid call returns a new independent token.","schema":{"type":"string"}},"x-credit-balance-cu":{"description":"CU remaining for the returned or presented credit token after this call.","schema":{"type":"integer","minimum":0,"example":480}},"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"description":"Success","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Lightweight trading analysis including sniper and bundler detection for early token activity","required":["CA","DA","Top10Holders","SniperPercentageOnLaunch","SniperAddresses","BundlerAddresses","SniperPercentageHolding","SniperConfidence","BundlerPercentageOnLaunch","BundlerPercentageHolding","TotalHolders","DexScreenerPaid","DevHoldingPercentage","DevLaunched24Hours","mintable","freezable","buy_sell_taxes","pool_fees"],"example":{"CA":"8RVBk8vxLiUHueLUW1f4izFVqN3nWippLhkohKg6EGkS","DA":"ExF1h7ahifYf9RPBXZCemXv8UTNPqEN5JFhkj4UgUmhJ","Top10Holders":24.47,"SniperPercentageOnLaunch":5.49,"SniperAddresses":[{"address":"7ioEZjdGdciB2jS79Rc8yqrsYanf2Q1YejHjNcQZLkER","initiallyAcquiredPercentage":0.94,"initiallyAcquiredAmount":9360093.570587,"currentHoldingPercentage":0,"currentHoldingAmount":20671.962122},{"address":"7CgG2UJ2WqirVGHKeRhBynQi5a2Tm9M7PtEmadrYepso","initiallyAcquiredPercentage":3.09,"initiallyAcquiredAmount":30875616.044737,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"CQxTmAZ9rB33KJybbtt7a16CafeonhfMpysTBBdrcM5L","initiallyAcquiredPercentage":1.46,"initiallyAcquiredAmount":14625460.432991,"currentHoldingPercentage":0,"currentHoldingAmount":0}],"BundlerAddresses":[{"address":"WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh","initiallyAcquiredPercentage":1.8,"initiallyAcquiredAmount":17973044.69963098,"currentHoldingPercentage":0.05,"currentHoldingAmount":526730.9391050001},{"address":"3ssxaw1nzaLjgsy7BzBYoH1wTGvvAWYz7jRDTizK4Usb","initiallyAcquiredPercentage":1.78,"initiallyAcquiredAmount":17727201.88304,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"AQVB8tG12htZuADwN4vGsszoj6joBtkADtvQcSd94dEj","initiallyAcquiredPercentage":1.23,"initiallyAcquiredAmount":12283224.297309,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"6fvdqK9pjxXgHmKdM6oTkDsURB29ntTEeAMCEwD948T3","initiallyAcquiredPercentage":1.62,"initiallyAcquiredAmount":16133989.649402,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"782sXpDcSNDPVRqBJ2auLAuWdCvuaBGTnr8wKNxBUMQi","initiallyAcquiredPercentage":1.55,"initiallyAcquiredAmount":15438313.665424,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"2Ysos2B2S6rb9FBNYUB7Yrk54Xv2nNbr8eBHs1sX8M6m","initiallyAcquiredPercentage":0.14,"initiallyAcquiredAmount":1420629.28082,"currentHoldingPercentage":0.39,"currentHoldingAmount":3935361.691171},{"address":"6Gs15JTsWU2JbE39mznEeX6ABq6p8mhjKzrFYsQETNNK","initiallyAcquiredPercentage":0.08,"initiallyAcquiredAmount":750157.619513,"currentHoldingPercentage":0.02,"currentHoldingAmount":171991.619938},{"address":"5JoopuYtouXxVNQy95tgqnSMjqbd9fvUZdmeYiMGfBv1","initiallyAcquiredPercentage":1.62,"initiallyAcquiredAmount":16141803.074607,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"76qAYA8NDPWeX7kmhoEECsDKA3ZnCn5SHjFR2rhKrCQB","initiallyAcquiredPercentage":1.53,"initiallyAcquiredAmount":15281506.17629,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"9Uw1BEkA1ns7x41s8At2upQ3sVBKpoKtAS6yy2bNWd32","initiallyAcquiredPercentage":0.21,"initiallyAcquiredAmount":2138468.17838,"currentHoldingPercentage":0,"currentHoldingAmount":0}],"SniperPercentageHolding":0,"SniperConfidence":5,"BundlerPercentageOnLaunch":10.8,"BundlerPercentageHolding":0.46,"TotalHolders":14256,"DexScreenerPaid":true,"DevHoldingPercentage":3.12,"DevLaunched24Hours":0,"mintable":false,"freezable":false,"lastAnalyzedSlot":444586317,"analysisTimestamp":1789571506035,"buy_sell_taxes":{"has_buy_tax":true,"has_sell_tax":true,"has_transfer_tax":true,"buy_tax_percentage":3,"sell_tax_percentage":3,"transfer_tax_percentage":3},"pool_fees":{"pool_address":"BUVzsLLLG7GWoyJVoU31pXiBveazA6GXTavZ9VD3CwS9","dex":"raydium","pool_type":"CPMM","trade_fee_percentage":0.25,"creator_fee_percentage":1,"total_fee_percentage":1.25},"total_effective_fee_percentage":4.25},"properties":{"CA":{"type":"string","description":"Contract address of the token","isRequired":true,"uniqueKey":"oneOf.0.CA","typeLabel":"string"},"DA":{"type":"string","description":"Deployer address","isRequired":true,"uniqueKey":"oneOf.0.DA","typeLabel":"string"},"Top10Holders":{"type":"number","description":"Percentage held by the top 10 holders at analysis time","isRequired":true,"uniqueKey":"oneOf.0.Top10Holders","typeLabel":"number"},"SniperPercentageOnLaunch":{"type":"number","description":"Percentage of supply acquired by snipers at launch","isRequired":true,"uniqueKey":"oneOf.0.SniperPercentageOnLaunch","typeLabel":"number"},"SniperAddresses":{"type":"array","description":"Addresses flagged as potential snipers","items":{"type":"object","description":"Breakdown of holdings for a specific wallet flagged in trading-lite analysis","properties":{"address":{"type":"string","description":"Wallet address","isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX].address","typeLabel":"string"},"initiallyAcquiredPercentage":{"type":"number","description":"Percentage of total supply acquired at launch","isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX].initiallyAcquiredPercentage","typeLabel":"number"},"initiallyAcquiredAmount":{"type":"number","description":"Token amount acquired at launch","isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX].initiallyAcquiredAmount","typeLabel":"number"},"currentHoldingPercentage":{"type":"number","description":"Current percentage of supply held","isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX].currentHoldingPercentage","typeLabel":"number"},"currentHoldingAmount":{"type":"number","description":"Current token amount held","isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX].currentHoldingAmount","typeLabel":"number"}},"required":["address","initiallyAcquiredPercentage","initiallyAcquiredAmount","currentHoldingPercentage","currentHoldingAmount"],"example":{"address":"BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s","initiallyAcquiredPercentage":100,"initiallyAcquiredAmount":1000000000,"currentHoldingPercentage":0,"currentHoldingAmount":0},"uniqueKey":"oneOf.0.SniperAddresses.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.SniperAddresses","typeLabel":"object[]"},"BundlerAddresses":{"type":"array","description":"Addresses flagged as coordinated buyers/bundlers","items":{"type":"object","description":"Breakdown of holdings for a specific wallet flagged in trading-lite analysis","properties":{"address":{"type":"string","description":"Wallet address","isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX].address","typeLabel":"string"},"initiallyAcquiredPercentage":{"type":"number","description":"Percentage of total supply acquired at launch","isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX].initiallyAcquiredPercentage","typeLabel":"number"},"initiallyAcquiredAmount":{"type":"number","description":"Token amount acquired at launch","isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX].initiallyAcquiredAmount","typeLabel":"number"},"currentHoldingPercentage":{"type":"number","description":"Current percentage of supply held","isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX].currentHoldingPercentage","typeLabel":"number"},"currentHoldingAmount":{"type":"number","description":"Current token amount held","isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX].currentHoldingAmount","typeLabel":"number"}},"required":["address","initiallyAcquiredPercentage","initiallyAcquiredAmount","currentHoldingPercentage","currentHoldingAmount"],"example":{"address":"BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s","initiallyAcquiredPercentage":100,"initiallyAcquiredAmount":1000000000,"currentHoldingPercentage":0,"currentHoldingAmount":0},"uniqueKey":"oneOf.0.BundlerAddresses.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.BundlerAddresses","typeLabel":"object[]"},"SniperPercentageHolding":{"type":"number","description":"Current percentage of supply held by snipers","isRequired":true,"uniqueKey":"oneOf.0.SniperPercentageHolding","typeLabel":"number"},"SniperConfidence":{"oneOf":[{"type":"number","description":"Confidence score (0-100) for sniper detection","isRequired":true,"uniqueKey":"oneOf.0.SniperConfidence.oneOf.0","typeLabel":"number"},{"type":"null","description":"Confidence score (0-100) for sniper detection","isRequired":true,"uniqueKey":"oneOf.0.SniperConfidence.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.SniperConfidence","typeLabel":"number | null"},"BundlerPercentageOnLaunch":{"type":"number","description":"Percentage of supply acquired by bundlers at launch","isRequired":true,"uniqueKey":"oneOf.0.BundlerPercentageOnLaunch","typeLabel":"number"},"BundlerPercentageHolding":{"type":"number","description":"Current percentage of supply held by bundlers","isRequired":true,"uniqueKey":"oneOf.0.BundlerPercentageHolding","typeLabel":"number"},"TotalHolders":{"type":"number","description":"Total number of holders at analysis time","isRequired":true,"uniqueKey":"oneOf.0.TotalHolders","typeLabel":"number"},"DexScreenerPaid":{"type":"boolean","description":"Whether the project has paid for DexScreener promotion","isRequired":true,"uniqueKey":"oneOf.0.DexScreenerPaid","typeLabel":"boolean"},"DevHoldingPercentage":{"type":"number","description":"Current holding percentage of the deployer/developer","isRequired":true,"uniqueKey":"oneOf.0.DevHoldingPercentage","typeLabel":"number"},"DevLaunched24Hours":{"type":"number","description":"Number of tokens launched by the deployer in the last 24 hours","isRequired":true,"uniqueKey":"oneOf.0.DevLaunched24Hours","typeLabel":"number"},"mintable":{"type":"boolean","description":"Whether the token can still be minted. True if mint authority is not renounced. False indicates the token supply is permanently fixed.","isRequired":true,"uniqueKey":"oneOf.0.mintable","typeLabel":"boolean"},"freezable":{"type":"boolean","description":"Whether token accounts can be frozen. True if freeze authority is not renounced. False indicates accounts cannot be frozen by the issuer.","isRequired":true,"uniqueKey":"oneOf.0.freezable","typeLabel":"boolean"},"buy_sell_taxes":{"type":"object","description":"Token-level transfer tax from the Token-2022 transfer_fee_config extension, charged on every transfer: buys, sells and plain wallet-to-wallet transfers all pay the same rate. details.buy_sell_taxes shape from GET /addresses/{address} plus has_transfer_tax / transfer_tax_percentage. Percentages are 0-100.","properties":{"has_buy_tax":{"type":"boolean","description":"True when the mint charges a transfer fee.","isRequired":true,"uniqueKey":"oneOf.0.buy_sell_taxes.has_buy_tax","typeLabel":"boolean"},"has_sell_tax":{"type":"boolean","description":"True when the mint charges a transfer fee.","isRequired":true,"uniqueKey":"oneOf.0.buy_sell_taxes.has_sell_tax","typeLabel":"boolean"},"has_transfer_tax":{"type":"boolean","description":"True when the mint charges a transfer fee, i.e. moving the token between wallets (not only buying or selling it) is taxed.","isRequired":true,"uniqueKey":"oneOf.0.buy_sell_taxes.has_transfer_tax","typeLabel":"boolean"},"buy_tax_percentage":{"type":"number","description":"Transfer fee as a percentage (0-100). Omitted when there is no fee.","example":3,"uniqueKey":"oneOf.0.buy_sell_taxes.buy_tax_percentage","typeLabel":"number"},"sell_tax_percentage":{"type":"number","description":"Transfer fee as a percentage (0-100). Omitted when there is no fee.","example":3,"uniqueKey":"oneOf.0.buy_sell_taxes.sell_tax_percentage","typeLabel":"number"},"transfer_tax_percentage":{"type":"number","description":"Transfer fee charged on every transfer, as a percentage (0-100). Same charge as buy_tax_percentage / sell_tax_percentage, so it is counted once in total_effective_fee_percentage. Omitted when there is no fee.","example":3,"uniqueKey":"oneOf.0.buy_sell_taxes.transfer_tax_percentage","typeLabel":"number"}},"required":["has_buy_tax","has_sell_tax","has_transfer_tax"],"isRequired":true,"uniqueKey":"oneOf.0.buy_sell_taxes","typeLabel":"object"},"pool_fees":{"oneOf":[{"type":"object","description":"Fees of the primary Raydium pool. null when Raydium lists no pool for the token (for example while it is still on a pump.fun bonding curve) or when the lookup failed.","required":["pool_address","dex","pool_type","trade_fee_percentage","total_fee_percentage"],"properties":{"pool_address":{"type":"string","description":"Pool address: Raydium pool (AMM) account on Solana, pool/pair contract on EVM chains.","example":"BUVzsLLLG7GWoyJVoU31pXiBveazA6GXTavZ9VD3CwS9","isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.pool_address","typeLabel":"string"},"dex":{"type":"string","description":"DEX the pool belongs to. raydium on Solana; the GeckoTerminal dex id on EVM chains (for example uniswap_v2, uniswap-v3-base, pancakeswap_v2).","example":"raydium","isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.dex","typeLabel":"string"},"pool_type":{"type":"string","description":"Solana: Raydium pool program — CPMM, CLMM or AMM (legacy v4). EVM: V2 (constant-product, protocol-constant fee) or V3 (concentrated liquidity, fee read from the pool).","example":"CPMM","isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.pool_type","typeLabel":"string"},"trade_fee_percentage":{"type":"number","description":"Pool trade fee (LP + protocol share) as a percentage.","example":0.25,"isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.trade_fee_percentage","typeLabel":"number"},"total_fee_percentage":{"type":"number","description":"Effective swap fee charged by the pool (trade fee + creator fee when enabled).","example":1.25,"isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.total_fee_percentage","typeLabel":"number"},"creator_fee_percentage":{"type":"number","description":"Extra fee paid to the token creator on top of the trade fee. Only present on launchpad-graduated CPMM pools that have it enabled. Solana only; never set on EVM chains.","example":1,"uniqueKey":"oneOf.0.pool_fees.oneOf.0.creator_fee_percentage","typeLabel":"number"}},"isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.0","typeLabel":"object"},{"type":"object","description":"Fees of the primary Raydium pool. null when Raydium lists no pool for the token (for example while it is still on a pump.fun bonding curve) or when the lookup failed.","enum":[null],"isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.1","typeLabel":"object"},{"type":"null","description":"Fees of the primary Raydium pool. null when Raydium lists no pool for the token (for example while it is still on a pump.fun bonding curve) or when the lookup failed.","enum":[null],"isRequired":true,"uniqueKey":"oneOf.0.pool_fees.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.pool_fees","typeLabel":"object · object · null"},"lastAnalyzedSlot":{"oneOf":[{"type":"number","description":"Last analyzed slot number from the bundling/sniper detection. Used by real-time monitoring to know where to start listening from.","uniqueKey":"oneOf.0.lastAnalyzedSlot.oneOf.0","typeLabel":"number"},{"type":"null","description":"Last analyzed slot number from the bundling/sniper detection. Used by real-time monitoring to know where to start listening from.","uniqueKey":"oneOf.0.lastAnalyzedSlot.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.lastAnalyzedSlot","typeLabel":"number | null"},"analysisTimestamp":{"oneOf":[{"type":"number","description":"Timestamp (milliseconds since epoch) when this analysis was performed. Used for cache invalidation and freshness checks.","uniqueKey":"oneOf.0.analysisTimestamp.oneOf.0","typeLabel":"number"},{"type":"null","description":"Timestamp (milliseconds since epoch) when this analysis was performed. Used for cache invalidation and freshness checks.","uniqueKey":"oneOf.0.analysisTimestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.analysisTimestamp","typeLabel":"number | null"},"total_effective_fee_percentage":{"type":"number","description":"What a trader pays in total: transfer fee + pool trade fee + creator fee, as a percentage. Omitted when pool_fees is null.","example":4.25,"uniqueKey":"oneOf.0.total_effective_fee_percentage","typeLabel":"number"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"GET /trading-lite/{address} response on EVM chains (eth, base, bsc, arb, robinhood). The Solana-only launch forensics of TradingLiteAnalysis (sniper, bundler and developer fields, mintable/freezable, lastAnalyzedSlot) have no EVM equivalent and are omitted.","required":["CA","Top10Holders","TotalHolders","DexScreenerPaid","buy_sell_taxes","pool_fees","analysisTimestamp"],"properties":{"CA":{"type":"string","description":"Contract address of the token","isRequired":true,"uniqueKey":"oneOf.1.CA","typeLabel":"string"},"Top10Holders":{"oneOf":[{"type":"number","description":"Percentage of the total on-chain supply held by the ten largest holders. Excluded from the ranking: burn addresses, the token contract itself, the token's indexed liquidity-pool contracts and the chain's Uniswap v4 PoolManager singleton (a pool is where the token trades, not a holder). Locker/staking contracts are not excluded and burned supply stays in the denominator, so this can differ from the circulating-supply based figures of GET /holder-analysis/{address}. null when no holder provider answered (never 0 for \"unknown\").","isRequired":true,"uniqueKey":"oneOf.1.Top10Holders.oneOf.0","typeLabel":"number"},{"type":"null","description":"Percentage of the total on-chain supply held by the ten largest holders. Excluded from the ranking: burn addresses, the token contract itself, the token's indexed liquidity-pool contracts and the chain's Uniswap v4 PoolManager singleton (a pool is where the token trades, not a holder). Locker/staking contracts are not excluded and burned supply stays in the denominator, so this can differ from the circulating-supply based figures of GET /holder-analysis/{address}. null when no holder provider answered (never 0 for \"unknown\").","isRequired":true,"uniqueKey":"oneOf.1.Top10Holders.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.Top10Holders","typeLabel":"number | null"},"TotalHolders":{"oneOf":[{"type":"number","description":"Total number of holders, from the first holder provider that answers (Bitquery, Moralis, CoinGecko). null when no provider answered.","isRequired":true,"uniqueKey":"oneOf.1.TotalHolders.oneOf.0","typeLabel":"number"},{"type":"null","description":"Total number of holders, from the first holder provider that answers (Bitquery, Moralis, CoinGecko). null when no provider answered.","isRequired":true,"uniqueKey":"oneOf.1.TotalHolders.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.TotalHolders","typeLabel":"number | null"},"DexScreenerPaid":{"type":"boolean","description":"Whether the project has paid for DexScreener promotion","isRequired":true,"uniqueKey":"oneOf.1.DexScreenerPaid","typeLabel":"boolean"},"buy_sell_taxes":{"type":"object","description":"Simulated ERC-20 taxes. Unlike the Solana block, each leg is measured independently, so a has_* flag is null (unknown) rather than false when its simulation could not run. Percentages are 0-100.","properties":{"has_buy_tax":{"oneOf":[{"type":"boolean","description":"true when a buy tax was measured, false when it was measured as 0, null when it could not be measured (no pair on a supported DEX, the simulated swap reverted, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_buy_tax.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"true when a buy tax was measured, false when it was measured as 0, null when it could not be measured (no pair on a supported DEX, the simulated swap reverted, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_buy_tax.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_buy_tax","typeLabel":"boolean | null"},"has_sell_tax":{"oneOf":[{"type":"boolean","description":"true when a sell tax was measured, false when it was measured as 0, null when it could not be measured (no pair on a supported DEX, the simulated swap reverted, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_sell_tax.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"true when a sell tax was measured, false when it was measured as 0, null when it could not be measured (no pair on a supported DEX, the simulated swap reverted, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_sell_tax.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_sell_tax","typeLabel":"boolean | null"},"has_transfer_tax":{"oneOf":[{"type":"boolean","description":"true when a wallet-to-wallet transfer tax was measured, false when it was measured as 0 (a 0 reading from a single sender is reported but only cached once a second sender repeats it, because fee-exempt wallets read as 0), null when it could not be measured (no externally owned holder to send from, the simulated transfer reverted or completed without crediting the recipient, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_transfer_tax.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"true when a wallet-to-wallet transfer tax was measured, false when it was measured as 0 (a 0 reading from a single sender is reported but only cached once a second sender repeats it, because fee-exempt wallets read as 0), null when it could not be measured (no externally owned holder to send from, the simulated transfer reverted or completed without crediting the recipient, or the provider was unavailable).","isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_transfer_tax.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes.has_transfer_tax","typeLabel":"boolean | null"},"buy_tax_percentage":{"type":"number","description":"Measured buy tax as a percentage (0-100). Omitted when there is no tax or it could not be measured.","example":5,"uniqueKey":"oneOf.1.buy_sell_taxes.buy_tax_percentage","typeLabel":"number"},"sell_tax_percentage":{"type":"number","description":"Measured sell tax as a percentage (0-100). Omitted when there is no tax or it could not be measured.","example":5,"uniqueKey":"oneOf.1.buy_sell_taxes.sell_tax_percentage","typeLabel":"number"},"transfer_tax_percentage":{"type":"number","description":"Measured wallet-to-wallet transfer tax as a percentage (0-100). Omitted when there is no tax or it could not be measured.","example":5,"uniqueKey":"oneOf.1.buy_sell_taxes.transfer_tax_percentage","typeLabel":"number"}},"required":["has_buy_tax","has_sell_tax","has_transfer_tax"],"isRequired":true,"uniqueKey":"oneOf.1.buy_sell_taxes","typeLabel":"object"},"pool_fees":{"oneOf":[{"type":"object","description":"Swap fee of the highest-liquidity pool. null when the token has no indexed pool, the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools), or the lookup failed. creator_fee_percentage is never set on EVM.","required":["pool_address","dex","pool_type","trade_fee_percentage","total_fee_percentage"],"properties":{"pool_address":{"type":"string","description":"Pool address: Raydium pool (AMM) account on Solana, pool/pair contract on EVM chains.","example":"BUVzsLLLG7GWoyJVoU31pXiBveazA6GXTavZ9VD3CwS9","isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.pool_address","typeLabel":"string"},"dex":{"type":"string","description":"DEX the pool belongs to. raydium on Solana; the GeckoTerminal dex id on EVM chains (for example uniswap_v2, uniswap-v3-base, pancakeswap_v2).","example":"raydium","isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.dex","typeLabel":"string"},"pool_type":{"type":"string","description":"Solana: Raydium pool program — CPMM, CLMM or AMM (legacy v4). EVM: V2 (constant-product, protocol-constant fee) or V3 (concentrated liquidity, fee read from the pool).","example":"CPMM","isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.pool_type","typeLabel":"string"},"trade_fee_percentage":{"type":"number","description":"Pool trade fee (LP + protocol share) as a percentage.","example":0.25,"isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.trade_fee_percentage","typeLabel":"number"},"total_fee_percentage":{"type":"number","description":"Effective swap fee charged by the pool (trade fee + creator fee when enabled).","example":1.25,"isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.total_fee_percentage","typeLabel":"number"},"creator_fee_percentage":{"type":"number","description":"Extra fee paid to the token creator on top of the trade fee. Only present on launchpad-graduated CPMM pools that have it enabled. Solana only; never set on EVM chains.","example":1,"uniqueKey":"oneOf.1.pool_fees.oneOf.0.creator_fee_percentage","typeLabel":"number"}},"isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.0","typeLabel":"object"},{"type":"object","description":"Swap fee of the highest-liquidity pool. null when the token has no indexed pool, the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools), or the lookup failed. creator_fee_percentage is never set on EVM.","enum":[null],"isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.1","typeLabel":"object"},{"type":"null","description":"Swap fee of the highest-liquidity pool. null when the token has no indexed pool, the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools), or the lookup failed. creator_fee_percentage is never set on EVM.","enum":[null],"isRequired":true,"uniqueKey":"oneOf.1.pool_fees.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.pool_fees","typeLabel":"object · object · null"},"analysisTimestamp":{"type":"number","description":"Timestamp (milliseconds since epoch) when this analysis was performed.","isRequired":true,"uniqueKey":"oneOf.1.analysisTimestamp","typeLabel":"number"},"total_effective_fee_percentage":{"type":"number","description":"Cost of a BUY: buy tax + pool fee, as a percentage. The sell tax is reported separately in buy_sell_taxes and is not included (on Solana the same field is transfer fee + trade fee + creator fee, which applies to both directions). Omitted when the buy tax or pool_fees is unknown.","example":5.3,"uniqueKey":"oneOf.1.total_effective_fee_percentage","typeLabel":"number"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"solana":{"title":"solana","value":{"CA":"8RVBk8vxLiUHueLUW1f4izFVqN3nWippLhkohKg6EGkS","DA":"ExF1h7ahifYf9RPBXZCemXv8UTNPqEN5JFhkj4UgUmhJ","Top10Holders":24.47,"SniperPercentageOnLaunch":5.49,"SniperAddresses":[{"address":"7ioEZjdGdciB2jS79Rc8yqrsYanf2Q1YejHjNcQZLkER","initiallyAcquiredPercentage":0.94,"initiallyAcquiredAmount":9360093.570587,"currentHoldingPercentage":0,"currentHoldingAmount":20671.962122},{"address":"7CgG2UJ2WqirVGHKeRhBynQi5a2Tm9M7PtEmadrYepso","initiallyAcquiredPercentage":3.09,"initiallyAcquiredAmount":30875616.044737,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"CQxTmAZ9rB33KJybbtt7a16CafeonhfMpysTBBdrcM5L","initiallyAcquiredPercentage":1.46,"initiallyAcquiredAmount":14625460.432991,"currentHoldingPercentage":0,"currentHoldingAmount":0}],"BundlerAddresses":[{"address":"WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh","initiallyAcquiredPercentage":1.8,"initiallyAcquiredAmount":17973044.69963098,"currentHoldingPercentage":0.05,"currentHoldingAmount":526730.9391050001},{"address":"3ssxaw1nzaLjgsy7BzBYoH1wTGvvAWYz7jRDTizK4Usb","initiallyAcquiredPercentage":1.78,"initiallyAcquiredAmount":17727201.88304,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"AQVB8tG12htZuADwN4vGsszoj6joBtkADtvQcSd94dEj","initiallyAcquiredPercentage":1.23,"initiallyAcquiredAmount":12283224.297309,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"6fvdqK9pjxXgHmKdM6oTkDsURB29ntTEeAMCEwD948T3","initiallyAcquiredPercentage":1.62,"initiallyAcquiredAmount":16133989.649402,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"782sXpDcSNDPVRqBJ2auLAuWdCvuaBGTnr8wKNxBUMQi","initiallyAcquiredPercentage":1.55,"initiallyAcquiredAmount":15438313.665424,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"2Ysos2B2S6rb9FBNYUB7Yrk54Xv2nNbr8eBHs1sX8M6m","initiallyAcquiredPercentage":0.14,"initiallyAcquiredAmount":1420629.28082,"currentHoldingPercentage":0.39,"currentHoldingAmount":3935361.691171},{"address":"6Gs15JTsWU2JbE39mznEeX6ABq6p8mhjKzrFYsQETNNK","initiallyAcquiredPercentage":0.08,"initiallyAcquiredAmount":750157.619513,"currentHoldingPercentage":0.02,"currentHoldingAmount":171991.619938},{"address":"5JoopuYtouXxVNQy95tgqnSMjqbd9fvUZdmeYiMGfBv1","initiallyAcquiredPercentage":1.62,"initiallyAcquiredAmount":16141803.074607,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"76qAYA8NDPWeX7kmhoEECsDKA3ZnCn5SHjFR2rhKrCQB","initiallyAcquiredPercentage":1.53,"initiallyAcquiredAmount":15281506.17629,"currentHoldingPercentage":0,"currentHoldingAmount":0},{"address":"9Uw1BEkA1ns7x41s8At2upQ3sVBKpoKtAS6yy2bNWd32","initiallyAcquiredPercentage":0.21,"initiallyAcquiredAmount":2138468.17838,"currentHoldingPercentage":0,"currentHoldingAmount":0}],"SniperPercentageHolding":0,"SniperConfidence":5,"BundlerPercentageOnLaunch":10.8,"BundlerPercentageHolding":0.46,"TotalHolders":14256,"DexScreenerPaid":true,"DevHoldingPercentage":3.12,"DevLaunched24Hours":0,"mintable":false,"freezable":false,"lastAnalyzedSlot":444586317,"analysisTimestamp":1789571506035,"buy_sell_taxes":{"has_buy_tax":true,"has_sell_tax":true,"has_transfer_tax":true,"buy_tax_percentage":3,"sell_tax_percentage":3,"transfer_tax_percentage":3},"pool_fees":{"pool_address":"BUVzsLLLG7GWoyJVoU31pXiBveazA6GXTavZ9VD3CwS9","dex":"raydium","pool_type":"CPMM","trade_fee_percentage":0.25,"creator_fee_percentage":1,"total_fee_percentage":1.25},"total_effective_fee_percentage":4.25}},"evmTransferTax":{"title":"evmTransferTax","value":{"CA":"0xa7de087329bfcda5639247f96140f9dabe3deed1","Top10Holders":53.272149,"TotalHolders":4340,"DexScreenerPaid":false,"buy_sell_taxes":{"has_buy_tax":true,"has_sell_tax":false,"has_transfer_tax":true,"buy_tax_percentage":1,"transfer_tax_percentage":1},"pool_fees":{"pool_address":"0x59f96b8571e3b11f859a09eaf5a790a138fc64d0","dex":"uniswap_v2","pool_type":"V2","trade_fee_percentage":0.3,"total_fee_percentage":0.3},"total_effective_fee_percentage":1.3,"analysisTimestamp":1789998849747}},"evmV3Pool":{"title":"evmV3Pool","value":{"CA":"0x532f27101965dd16442e59d40670faf5ebb142e4","Top10Holders":33.349965,"TotalHolders":893634,"DexScreenerPaid":true,"buy_sell_taxes":{"has_buy_tax":false,"has_sell_tax":false,"has_transfer_tax":false},"pool_fees":{"pool_address":"0xba3f945812a83471d709bce9c3ca699a19fb46f7","dex":"uniswap-v3-base","pool_type":"V3","trade_fee_percentage":1,"total_fee_percentage":1},"total_effective_fee_percentage":1,"analysisTimestamp":1789998853255}}},"exampleType":"examples"}},"exampleType":"examples"},"8d28b2a2-c4b2-4970-9018-ce89232be87f":{"description":"Unsupported chain, or an address that is not valid for the chain: on `sol` a base58 Solana public key (the 0x-prefixed hex form is rejected), on the EVM chains a 0x-prefixed 40-character hex address.","headers":{"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0359d50f-06f8-4a6b-9164-9df75ec5f87a":{"description":"Authorization information is missing or invalid","content":{"application/json":{"example":{"message":"Unauthorized"},"examples":{"Example":{"title":"Example","value":{"message":"Unauthorized"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"exampleType":"examples"},"ed45c742-cd62-4513-967d-ea214378c4c9":{"description":"Keyless x402 payment required. Returned for a keyless caller (gateway entry `x-webacy-entry: x402`) with no prepaid CU balance or insufficient CU on the presented credit token. Identified by the base64 `PAYMENT-REQUIRED` response header; the body carries the x402 challenge (a USDC price on Base and a Stripe-minted deposit address). Pay it, then retry with the `PAYMENT-SIGNATURE` header to unlock the resource and receive a credit token. An authenticated api-key caller with a past_due/unpaid subscription may instead receive a different 402 (`Subscription payment required`, plain JSON, no `PAYMENT-REQUIRED` header).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 challenge (network, asset, amount, payTo, resource.url). The edge rollout supplies the canonical public request path through a valid gateway claim; missing or invalid claims safely fall back to the public origin plus an internal path identifier. resource.url is not yet suitable for publishing to a public x402 discovery catalog (Coinbase's Bazaar): route-specific declarations and live paid validation are still pending.","schema":{"type":"string"}},"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"content":{"application/json":{"example":{"x402Version":1,"error":"payment required"},"examples":{"Example":{"title":"Example","value":{"x402Version":1,"error":"payment required"}}},"exampleType":"examples"}},"exampleType":"examples"},"3a0737e0-4d2a-4912-a772-ab8e48e7b3c9":{"description":"Solana only: the token's supply could not be read, so the mint may not exist.","headers":{"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"a2b4620b-8f06-493c-bbe0-72ef6d255185":{"description":"Solana only: the token exists but cannot be analyzed. Either no transactions are available for it yet, which is common for a newly launched token in its first seconds (retrying after a short delay usually succeeds), or its supply is missing, zero or invalid.","headers":{"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"4b157fbf-528d-4f8f-993d-25b150aa1759":{"description":"x402 paywall fails CLOSED: if payment configuration is incomplete or invalid, the x402 route unexpectedly has no payment requirement, or the facilitator, credit store, or settlement is unavailable, a gated keyless request returns 503 (`Payment service temporarily unavailable`) rather than serving the resource unpaid.","content":{"application/json":{"example":{"message":"Payment service temporarily unavailable"},"examples":{"Example":{"title":"Example","value":{"message":"Payment service temporarily unavailable"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Server-issued id for this request, returned on every response, success or error. Quote it to Webacy support to find the request. On risk endpoints it equals the `check_id` body field.","schema":{"type":"string","format":"uuid","example":"3f1c2b9e-7a4d-4e1b-9c55-0d6a2f8e4b71"}}},"exampleType":"examples"}},"security":{"9f66093f-48ba-4a61-87a4-8676d977dfa7":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"api_key"}}},"servers":{"383ee277-cc3e-4c5b-9060-26029d813c28":{"url":"https://api.webacy.com","description":"Webacy Risk Score API (Production)"},"46e953d9-23d0-4ded-9dfe-145619c5b88e":{"url":"https://api-development.webacy.com","description":"Webacy Risk Score API (Development)"},"1c0a4a80-cff4-4732-8bb4-c1d6ddfb5c04":{"url":"http://0.0.0.0:3030/api/v1/risk-score","description":"Webacy Risk Score API - Local"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"api_key"},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api_key","name":"x-api-key"}],"title":"api_key"}]},"originalFileLocation":"openapi.json"},"subdomain":"webacy","siteName":"Webacy Docs","title":"Get Solana token risk with security indicators - Webacy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-21T20:04:33.825Z","originalFileLocation":"api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls. Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted. Security Indicators: - mintable: false = Mint authority renounced (supply is fixed) ✅ - mintable: true = Token supply can still be increased ⚠️ - freezable: false = Freeze authority renounced (accounts cannot be frozen) ✅ - freezable: true = Accounts can be frozen by issuer ⚠️ Performance: - First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response) - Cached calls: Fast response (~0.5 seconds) - Cache TTL: 5 minutes Fees: - buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three - pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool - total_effective_fee_percentage — transfer fee (counted once) + trade fee + creator fee Fees on EVM chains: - buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0 - pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM - total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown - A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\">\u003cmeta data-mint-head name=\"application-name\" content=\"Webacy Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get Solana token risk with security indicators - Webacy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls. Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted. Security Indicators: - mintable: false = Mint authority renounced (supply is fixed) ✅ - mintable: true = Token supply can still be increased ⚠️ - freezable: false = Freeze authority renounced (accounts cannot be frozen) ✅ - freezable: true = Accounts can be frozen by issuer ⚠️ Performance: - First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response) - Cached calls: Fast response (~0.5 seconds) - Cache TTL: 5 minutes Fees: - buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three - pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool - total_effective_fee_percentage — transfer fee (counted once) + trade fee + creator fee Fees on EVM chains: - buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0 - pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM - total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown - A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Webacy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://webacy.mintlify.site/_mintlify/api/og/v2?division=Token\u0026amp;title=Get+Solana+token+risk+with+security+indicators\u0026amp;description=Returns+simplified+token+analysis+including+bundler+detection%2C+sniper+detection%2C+top+holder+distribution%2C+developer+activity%2C+token+authority+status+%28mintable%2Ff\u0026amp;theme=256fd323fde43a5eeef07bf6\u0026amp;signature=a9b65dd3106965fb88e4770f219dc80907c1a96ebbacae6d71b9722023d099ca\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get Solana token risk with security indicators - Webacy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls. Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted. Security Indicators: - mintable: false = Mint authority renounced (supply is fixed) ✅ - mintable: true = Token supply can still be increased ⚠️ - freezable: false = Freeze authority renounced (accounts cannot be frozen) ✅ - freezable: true = Accounts can be frozen by issuer ⚠️ Performance: - First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response) - Cached calls: Fast response (~0.5 seconds) - Cache TTL: 5 minutes Fees: - buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three - pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool - total_effective_fee_percentage — transfer fee (counted once) + trade fee + creator fee Fees on EVM chains: - buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0 - pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM - total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown - A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://webacy.mintlify.site/_mintlify/api/og/v2?division=Token\u0026amp;title=Get+Solana+token+risk+with+security+indicators\u0026amp;description=Returns+simplified+token+analysis+including+bundler+detection%2C+sniper+detection%2C+top+holder+distribution%2C+developer+activity%2C+token+authority+status+%28mintable%2Ff\u0026amp;theme=256fd323fde43a5eeef07bf6\u0026amp;signature=a9b65dd3106965fb88e4770f219dc80907c1a96ebbacae6d71b9722023d099ca\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Webacy Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00d66f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.webacy.com/#organization\",\"name\":\"Webacy Docs\",\"url\":\"https://docs.webacy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/webacy/PZHkbk8qJrPsQSaC/logo/light.png?fit=max\u0026auto=format\u0026n=PZHkbk8qJrPsQSaC\u0026q=85\u0026s=c1933879883f6b01ff46a6e51cfd687f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.webacy.com#website\",\"name\":\"Webacy Docs\",\"url\":\"https://docs.webacy.com\",\"publisher\":{\"@id\":\"https://docs.webacy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators#webpage\",\"url\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators\",\"name\":\"Get Solana token risk with security indicators\",\"description\":\"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls. Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted. Security Indicators: - mintable: false = Mint authority renounced (supply is fixed) ✅ - mintable: true = Token supply can still be increased ⚠️ - freezable: false = Freeze authority renounced (accounts cannot be frozen) ✅ - freezable: true = Accounts can be frozen by issuer ⚠️ Performance: - First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response) - Cached calls: Fast response (~0.5 seconds) - Cache TTL: 5 minutes Fees: - buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three - pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool - total_effective_fee_percentage — transfer fee (counted once) + trade fee + creator fee Fees on EVM chains: - buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0 - pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM - total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown - A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\",\"dateModified\":\"2026-09-21T20:04:33.825Z\",\"isPartOf\":{\"@id\":\"https://docs.webacy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Risk Intelligence\",\"item\":\"https://docs.webacy.com/api-reference/riskdd\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Token\",\"item\":\"https://docs.webacy.com/api-reference/token-analysis/get-token-economic-history\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get Solana token risk with security indicators\",\"item\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators#apireference\",\"headline\":\"Get Solana token risk with security indicators\",\"name\":\"Get Solana token risk with security indicators\",\"description\":\"Returns simplified token analysis including bundler detection, sniper detection, top holder distribution, developer activity, token authority status (mintable/freezable), and the fees a trader pays (Token-2022 transfer fee as buy/sell/transfer tax, plus the trade and creator fee of the primary Raydium pool). Optimized for repeat calls. Chains: Solana (sol) returns the full analysis (TradingLiteAnalysis). EVM chains (eth, base, bsc, arb, robinhood) return the holder distribution and the fee block only (TradingLiteEvmAnalysis): bundler, sniper, developer, mintable/freezable and lastAnalyzedSlot are Solana-only and are omitted. Security Indicators: - mintable: false = Mint authority renounced (supply is fixed) ✅ - mintable: true = Token supply can still be increased ⚠️ - freezable: false = Freeze authority renounced (accounts cannot be frozen) ✅ - freezable: true = Accounts can be frozen by issuer ⚠️ Performance: - First call: Full analysis (~2-5 seconds on Solana; on EVM chains typically 2-8 seconds; a whole-request deadline of 25 seconds returns whatever has resolved as a degraded response) - Cached calls: Fast response (~0.5 seconds) - Cache TTL: 5 minutes Fees: - buy_sell_taxes — Token-2022 transfer fee as buy, sell and transfer tax (0-100). It is charged on every transfer, so wallet-to-wallet sends pay it too (has_transfer_tax / transfer_tax_percentage); same rate on all three - pool_fees — trade fee and, when enabled, creator fee of the highest-TVL Raydium pool; null when the token has no Raydium pool - total_effective_fee_percentage — transfer fee (counted once) + trade fee + creator fee Fees on EVM chains: - buy_sell_taxes — buy and sell tax are measured by simulating a swap; transfer tax by simulating a wallet-to-wallet transfer() from a current holder and comparing the amount received with the amount sent. Each leg is independent: has_buy_tax / has_sell_tax / has_transfer_tax is null when that leg could not be measured (no pair, the simulation reverted, provider unavailable), false when it was measured as 0 - pool_fees — swap fee of the highest-liquidity pool: read on-chain from fee() for Uniswap V3-style pools, a protocol constant for V2-style pools (for example Uniswap V2 0.30%, PancakeSwap V2 0.25%). null when the primary pool is on a DEX the fee cannot be read from (Uniswap v4, Algebra forks, dynamic-fee pools). creator_fee_percentage is never set on EVM - total_effective_fee_percentage — buy tax + pool fee (the cost of a buy). Omitted when either is unknown - A response with a degraded leg (unmeasured tax, a failed holder/metadata or pool lookup, or the request deadline) is cached for 1 minute instead of 5\",\"url\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators\",\"mainEntityOfPage\":{\"@id\":\"https://docs.webacy.com/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators#webpage\"},\"dateModified\":\"2026-09-21T20:04:33.825Z\",\"publisher\":{\"@id\":\"https://docs.webacy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.webacy.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Webacy Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Webacy Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators.md","siteName":"Webacy Docs","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/introduction"}]},{"tab":"Build","pages":[{"title":"Build","href":"/getting-started"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/use-cases-guides-walkthroughs"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Introduction","href":"/api-reference/introduction"},{"title":"Authenticate with the Webacy API using API keys","href":"/api-reference/authentication"},{"title":"Get current API usage","openapi":"GET /usage/current","href":"/api-reference/api-usage/get-current-api-usage"},{"title":"Get API usage for specified dates","openapi":"GET /usage","href":"/api-reference/api-usage/get-api-usage-for-specified-dates"},{"title":"Get current CU usage","openapi":"GET /usage/cu","href":"/api-reference/api-usage/get-current-cu-usage"},{"title":"Get daily CU usage","openapi":"GET /usage/cu/daily","href":"/api-reference/api-usage/get-daily-cu-usage"}]},{"group":"Stablecoins","pages":[{"title":"Depeg Monitor","href":"/api-reference/depeg-monitor"},{"title":"List pegged tokens — stablecoins \u0026 RWAs","openapi":"GET /rwa","href":"/api-reference/depeg-monitor/list-pegged-tokens-with-depeg-risk"},{"title":"Get risk detail for a single stablecoin","openapi":"GET /rwa/{address}","href":"/api-reference/depeg-monitor/get-depeg-risk-detail-for-a-pegged-token"},{"title":"List Stablecoins","openapi":"GET /v3/stablecoins","href":"/api-reference/stablecoins/list-stablecoins"},{"title":"List Stablecoin Grades","openapi":"GET /v3/stablecoins/grades","href":"/api-reference/stablecoins/get-stablecoin-grades"},{"title":"Get Stablecoin Risk Detail","openapi":"GET /v3/stablecoins/{address}","href":"/api-reference/stablecoins/get-stablecoin-detail"},{"title":"Holder Concentration Index API","href":"/api-reference/holder-concentration"},{"title":"List all stablecoin and rwa holder data","openapi":"GET /rwa/hci","href":"/api-reference/holder-concentration/list-holder-concentration-index"},{"title":"Get holder concentration history for one token","openapi":"GET /rwa/hci/history","href":"/api-reference/holder-concentration/get-holder-concentration-index-history"},{"title":"List stablecoin supply flows","openapi":"GET /rwa/supply","href":"/api-reference/supply-flows/list-supply-flows"},{"title":"Get supply-flow detail for one token","openapi":"GET /rwa/supply/{symbol}","href":"/api-reference/supply-flows/get-supply-flow-detail"}]},{"group":"RWA","pages":[{"title":"RWA Risk (v3)","href":"/api-reference/rwa-v3"},{"title":"Get risk detail for a single RWA","openapi":"GET /v3/rwa/{address}","href":"/api-reference/rwa-v3/get-rwa-risk-detail"},{"title":"List RWA \u0026 stablecoin grades","openapi":"GET /v3/rwa/grades","href":"/api-reference/rwa-v3/get-rwa-grades"},{"title":"Batch structural risk data for RWAs","openapi":"POST /v3/rwa/batch/structural-health","href":"/api-reference/rwa-v3/post-batch-structural-health"}]},{"group":"Vault Risk V3","pages":[{"title":"V3 Vault Risk API Overview","href":"/api-reference/vault-risk-v3/v3-overview"},{"title":"V3 Framework Methodology","href":"/api-reference/vault-risk-v3/framework-methodology"},{"title":"Get risk data for a single vault","openapi":"GET /v3/vaults/{address}","href":"/api-reference/vault-risk-v3/get-vault-risk-detail-v3"},{"title":"Batch vault ratings","openapi":"POST /v3/vaults/batch/grades","href":"/api-reference/vault-risk-v3/get-vault-grades-batch"},{"title":"Get vault risk data framework and taxonomy","openapi":"GET /v3/framework","href":"/api-reference/vault-risk-v3/get-framework"}]},{"group":"Vault History","pages":[{"title":"Get Vault TVL History","openapi":"GET /vaults/{address}/tvl-history","href":"/api-reference/vault-risk/get-vault-tvl-history"},{"title":"Get Vault Share Price History","openapi":"GET /vaults/{address}/share-price-history","href":"/api-reference/vault-risk/get-vault-share-price-history"}]},{"group":"Risk Intelligence","pages":[{"title":"Risk Due Diligence","href":"/api-reference/riskdd"},{"title":"Trading Due Diligence","href":"/api-reference/tradingdd"},{"title":"Risk intelligence for an address","openapi":"GET /addresses/{address}","href":"/api-reference/threat-risks/threat-considerations-for-an-address"},{"group":"Wallet","pages":[{"title":"Check if a wallet address is sanctioned","openapi":"GET /addresses/sanctioned/{walletAddress}","href":"/api-reference/sanction-checks/check-if-wallet-address-is-sanctioned"},{"title":"Detect address poisoning on a wallet address","openapi":"GET /addresses/{address}/poisoning","href":"/api-reference/address-poisoning/detect-address-poisoning-for-a-specific-wallet-address"},{"title":"Get open approvals with risk data on a wallet address","openapi":"GET /addresses/{address}/approvals","href":"/api-reference/approval-risks/approvals-with-threat-risks"},{"title":"Get the risk profile and exposure of a wallet address","openapi":"GET /quick-profile/{walletAddress}","href":"/api-reference/exposure-risk/understand-the-risk-profile-risk-exposure-of-an-address"}]},{"group":"Transaction","pages":[{"title":"Get risk details for a transaction hash","openapi":"GET /transactions/{txHash}","href":"/api-reference/transaction-risks/risk-details-for-a-transaction"},{"title":"Simulate a raw EVM transaction for security risks","openapi":"POST /scan/{fromAddress}/transactions","href":"/api-reference/transaction-scanning/scan-raw-evm-transaction-for-security-risks"},{"title":"Simulate an EIP-712 signed message for security risks","openapi":"POST /scan/{fromAddress}/eip712","href":"/api-reference/transaction-scanning/scan-eip-712-signed-message-for-security-risks"}]},{"group":"Token","pages":[{"title":"Get economic history for a token","openapi":"GET /tokens/{tokenAddress}","href":"/api-reference/token-analysis/get-token-economic-history"},{"title":"Get pools with risk assessment for a token","openapi":"GET /tokens/{tokenAddress}/pools","href":"/api-reference/token-analysis/get-token-pools-with-risk-assessment"},{"title":"Get trending tokens with risk analysis","openapi":"GET /tokens/trending","description":"We index new trending tokens every 10 minutes and provide comprehensive risk analysis, token economics, and metadata for each. This endpoint returns a complete view of trending tokens and their associated risks.","href":"/api-reference/token-analysis/get-trending-cryptocurrencies-with-risk-analysis"},{"title":"Get Solana token risk with security indicators","openapi":"GET /trading-lite/{address}","href":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators"},{"title":"Get detailed early holder analysis for a token","openapi":"GET /holder-analysis/{address}","description":"Analyzes token holders, buying patterns, and detects suspicious activity such as sniper bots and coordinated buys. This endpoint provides comprehensive insights into token ownership distribution, early investor behavior, and potential risk factors.\n\n**Supported Chains:**\n- **Solana** (`sol`): Data reflects initial 10-hours window after mint with sniper detection. Early holder analysis is available for tokens launched within the last **12 months** (data provider retention). Older tokens return `data_availability: unsupported_token_age`; previously analyzed tokens continue to return stored results.\n- **EVM chains** (`eth`, `bsc`, `pol`, `arb`, `opt`, `base`): Top holders and sniper detection. On **BSC**, early holder analysis is available for tokens deployed within the last **3 months** (data provider retention). Older tokens return `data_availability: unsupported_token_age`; previously analyzed tokens continue to return stored results.\n- **Stellar** (`stellar`): Address must be in `CODE:ISSUER` format\n- **Sui** (`sui`): First buyers analysis with bundler detection\n- **Hedera** (`hedera`): Accepts native `0.0.X` format (HTS token ID) or EVM address format. Includes token admin keys analysis (admin, freeze, wipe, pause, supply, KYC, fee schedule keys), custom fee schedules, and pause status. Sniper/bundling analysis is excluded (Hedera has deterministic transaction ordering, no MEV).","href":"/api-reference/holder-analysis/get-detailed-early-holder-analysis-for-a-token"},{"title":"Get trending liquidity pools with risk data","openapi":"GET /tokens/pools/trending","href":"/api-reference/pool-analysis/get-trending-pools-with-risk-analysis"},{"title":"Get OHLCV and risk data for a liquidity pool","openapi":"GET /tokens/pools/{poolAddress}","href":"/api-reference/pool-analysis/get-pool-ohlcv-data-with-risk-assessment"}]},{"group":"Smart Contract","pages":[{"title":"Get full risk analysis for a contract address","openapi":"GET /contracts/{contractAddress}","href":"/api-reference/contract-risk/get-a-real-time-analysis-for-a-given-contract-address"},{"title":"Get only the source-code findings for a contract address","openapi":"GET /contracts/{contractAddress}/code-analysis","href":"/api-reference/contract-risk/get-source-code-analysis-for-a-contract"},{"title":"Get verified source code for a contract address","openapi":"GET /source-code/{contractAddress}","href":"/api-reference/contract-risk/get-verified-source-code-for-a-contract"}]},{"group":"URL","pages":[{"title":"Get risk analysis of a URL","openapi":"POST /url","href":"/api-reference/url-risks/project-url-risk-analysis"}]}]}]}]},"basePath":"","title":"Get Solana token risk with security indicators - Webacy Docs","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BvKnMd7F.js","utils-BMt52org.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CGXZuDGO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dl57XWH2.js","snippetPresets-CWd8CxSk.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BR-Wkc_D.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-YMmi08aZ.js","shallow-DBC1OB78.js","getApiPlaygroundDisplay-Be7mmEzP.js","CodeSnippet-B14o1TgQ.js","CodeSnippets-CJ2q3fTq.js","Page-Chgj7sZe.js","getPastedJson-DnpLXm8x.js","icon-BpkSFtdK.js","MethodPill-BO3zPf-g.js","DuplicateIcon-Bib3qwfw.js","createIcon-CY2noFo3.js","DynamicMarkdown-TAXIW2vN.js","SectionHeading-Dfs3Fmfw.js","axios-vUo_bRtp.js","Markdown-CGAo_eqA.js","clsx-BNa-H6W6.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-r2tNEC1n.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B7oWe6jc.js"]}