DocsHow every part of Printer works.

Automations

Flow blocks & expressions

Every block, the metrics expressions can use, and variables.

The blocks you can use depend on the chain. The palette only shows the ones available. Settings with a ƒx switch accept either a fixed value or an expression.

Triggers

A trigger starts a run. A flow can have several.

BlockStarts a run
ManualWhen you press Run now.
Token launchedWhen the launch confirms, optionally after a delay.
ScheduleEvery interval, with optional random jitter.
Market conditionWhen an expression becomes true, checked on an interval.
Outside swapWhen someone else buys or sells at least a set size.
Dev wallet sellsWhen the developer wallet sells at least a share of its holdings.
Automation eventOn an event from your other automations, such as the daily limit being reached.

Logic

BlockDoes
IfContinues on True or False depending on an expression.
WaitPauses for a duration, optionally with random jitter (for example 30 to 90s).
Wait untilWaits for an expression to become true (Met), or gives up after a timeout (Timeout).
RepeatRuns the Loop branch a number of times, then continues on Done.
Set variableStores a value in a variable for later steps.
Random splitTakes branch A or B at random, with the chance you set.
StopEnds the run.

Actions

BlockDoes
BuyBuys with an amount of the trading currency, across all, selected or a random number of trade wallets.
SellSells a share of what the wallets hold, optionally only above a USD market cap.
Launch tokenLaunches a ready draft (EVM chains).
Start strategyStarts scheduled trades, counter trading, a grid bot or another strategy, set up with the same form as the Automations tab.
Stop strategyStops strategies the flow started.
Pause everythingPauses every automation and flow on the token.
Set daily limitChanges the token’s daily automation limit.
NotifySends you a notification.
Fund walletsTops up trade wallets (EVM chains).

Expressions and metrics

Expressions compare live metrics, numbers and variables, for example mcap > 3 * vars.entry or pnlPct > 50 && devHoldingsPct < 1. The editor suggests names as you type (Ctrl + Space lists them) and flags mistakes such as an unclosed bracket or an unknown name.

Use + - * /, comparisons > < >= <= == !=, && (and), || (or), ! (not), brackets and min(), max(), abs(), round().

MetricMeaning
mcapMarket cap, USD
priceToken price, USD
liquidityPool liquidity, USD
holdingsPctShare of supply your wallets hold
holdingsQuoteWhat your wallets hold, in the trading currency
pnlQuoteNet P&L on the token, in the trading currency
pnlPctNet P&L on the token, %
sinceLaunchSeconds since launch
sinceStartSeconds since this run started
extBuys5mOutside buys in the last 5 minutes
extSells5mOutside sells in the last 5 minutes
netFlow5mOutside buys minus sells in the last 5 minutes
devHoldingsPctShare of supply the dev wallet holds
balanceQuoteTrading-currency balance across trade wallets
nowCurrent time, in seconds

Variables

A Set variable block stores a value, such as the market cap at entry, and any later expression can read it as vars.name. Each run has its own variables, and the run timeline shows their values.

Example: a trailing stop

  1. Buy, then Set variable
    Set peak to mcap.
  2. Wait until
    Condition mcap < vars.peak * 0.85, timeout 5 minutes.
  3. On Met, Sell 100%
    The market cap fell 15% below the peak.
  4. On Timeout, raise the peak
    Set peak to max(vars.peak, mcap) and connect back to Wait until.