Ask the case
a question.
CyQL is a small query language over one scan in the lab. Type it in the CyQL panel of the workspace or in a notebook; results select and highlight their wallets in the graph.
One line,
four parts.
A query names what to search, then optionally filters, sorts and trims it:
<collection> [where <condition>] [order by <field> [asc|desc], …] [limit <n>]Conditions compare fields with =, !=, <, <=, >, >= and ~ (contains, any case), and join with and, or, not and brackets. Also: field in (a, b), field between low and high, field is null, field is not null, and a true/false field on its own.
Rules that keep answers honest: text and addresses compare without case; = against a list means “is one of” (a hub list, a group’s wallets); anything compared with a missing value is false, so a holder with no tape entry never matches bought < …; ask for those with bought is null. Arithmetic is + and - with units: launch + 5 blocks, entry < 2 m.
In the editor, Enter runs, Tab takes a suggestion and Ctrl+Space asks for one. Errors point at the character where the query went wrong and suggest the nearest field.
Questions
people ask.
holders where funded_by = hub and bought < launch + 5 blocksTop holders first funded through a shared-service hub that bought within five blocks of launch.holders where linked_to_creator order by pct descHolders linked to the creator by funding or transfers, largest first.trades where side = 'sell' and group is not null order by eth desc limit 20The twenty largest sells by the creator, its linked groups and wallets linked to it.clusters where sold_pct > 50 or includes_creatorLinked groups that sold more than half of what they bought, or that include the creator.bundles where size >= 3 order by pct descSame-block buys by three or more wallets, by share of supply.connections where relation = 'funded' order by count descFor a wallet case: the wallets it funded, most transfers first.holders where label ~ 'router' or funded_by in (creator, pool)Text match without case, and a list of names.holders where entry between 0 and 1 m and pct >= 1%Units: m, s and h scale to seconds; blocks, % and eth are plain numbers.What a token
case holds.
holderstop holders at the scanaddress addresswallet addresslabel stringlabel, if anypct number% of supply held nowcluster numberlinked group numberfunded_by addressfirst funderfunder_label stringfunder labellinked_to_creator booleanlinked to the creator by funding or transfersentry secondsfirst buy, seconds after launchbought blockblock of the first buy (from the tape)last_trade blockblock of the last tradebuys numberbuy countsells numbersell counteth_in numberETH spent buyingeth_out numberETH received sellingpnl numberPnL in ETH from the scannode stringgraph node idtradesevery stored trade, oldest firstblock blockblockat stringtime, ISOtx stringtransactionwallet addresstraderside stringbuy or selltokens numbertokenseth numberETHprice numberpool price in ETHgroup stringcreator, linked group or linked-to-creatorclusterslinked wallet groupsid numbergroup numberwallets listmember addressessize numbermember countpct number% of supply heldlaunch_pct number% bought at launchkinds listhow they are linkedincludes_creator booleancreator is a membersold_pct number% of their tokens soldbundlessame-block buystx stringtransactionblock blockblockwallets listbuyerssize numberbuyer countpct number% of supply boughtheld_pct number% still heldwalletsevery entity in the case graphid stringgraph node idaddress addressaddresslabel stringlabelrole stringtoken, wallet, deployer, pool, funder, exchange, lockershare number% of supply, where knownlinksevery relationship in the case graphfrom addressfrom addressto addressto addresskind stringfunding, launch, transfer, control, inferencelabel stringwhat the link iseventsthe case timelineat numberblock (or time) of the eventlane stringlaunch, buys, sells, transfers, lp, taxlabel stringeventwallet addresswallet involvedtx stringtransactionWhat a wallet
case holds.
connectionswallets this wallet is linked toaddress addressaddresslabel stringlabelrelation stringfunder, funded, same_funder, sent_tokens, received_tokenscount numbertransfersdeployer booleanhas created launchesholdingstokens the wallet holdstoken addresstokensymbol stringtickeramount numberamountvalue_usd numberUSD valueoutcome stringlaunch outcomelaunchestokens this wallet createdtoken addresstokensymbol stringtickeroutcome stringoutcomevolume_eth numbervolume in ETHcreator_sold_pct number% the creator soldwalletsevery entity in the case graphid stringgraph node idaddress addressaddresslabel stringlabelrole stringtoken, wallet, deployer, pool, funder, exchange, lockershare number% of supply, where knownlinksevery relationship in the case graphfrom addressfrom addressto addressto addresskind stringfunding, launch, transfer, control, inferencelabel stringwhat the link iseventsthe case timelineat numberblock (or time) of the eventlane stringlaunch, buys, sells, transfers, lp, taxlabel stringeventwallet addresswallet involvedtx stringtransactionWhat a transaction or contract
case holds.
walletsevery entity in the case graphid stringgraph node idaddress addressaddresslabel stringlabelrole stringtoken, wallet, deployer, pool, funder, exchange, lockershare number% of supply, where knownlinksevery relationship in the case graphfrom addressfrom addressto addressto addresskind stringfunding, launch, transfer, control, inferencelabel stringwhat the link iseventsthe case timelineat numberblock (or time) of the eventlane stringlaunch, buys, sells, transfers, lp, taxlabel stringeventwallet addresswallet involvedtx stringtransactionWords for
this case.
hub list · every caseshared-service hubs in the case (exchanges, routers)target address · every casethe scanned addresslaunch block · tokenlaunch blockfirst_trade block · tokenblock of the first pool tradelast_block block · tokennewest block on the tapecreator address · tokenthe creatorpool address · tokenthe trading pooltoken address · tokenthe tokeninsiders list · tokenwallets linked to the creatorsnipers number · tokenwallets that bought in the first blockfunder address · walletfirst funderwallet address · walletthis walletTrades and the tape columns of holders (bought, buys, sells, ETH in and out) come from the swap tape the last full scan stored; until it is stored they are empty, and the lab says so. A linked group is a set of wallets the chain connects, not a statement about who owns them. Results are readings of public chain data at the scan’s time, not advice. How to read a scan.