01

What is Percolypse?

Percolypse is an autonomous on-chain execution engine. It continuously ingests live blockchain state, extracts actionable signals, and resolves execution — without human intervention.

Built as a fork of percolator-cli, Percolypse advances beyond passive monitoring. Where Percolator collected and surfaced data, Percolypse acts on it. The gap between signal and execution is closed entirely.

The core thesis: in on-chain markets, the edge belongs to whoever acts first. Percolypse removes the human from that decision path.

State

Live on-chain data across 5+ chains, ingested every block.

Signal

Pattern detection across liquidity, order flow, and lifecycle events.

Action

Deterministic execution. No approval queue. No human gate.

Quick Start

Get Percolypse running in autonomous mode in under 5 minutes.

1. Install

terminal
# Install globally
npm install -g percolypse
# Or run without installing
npx percolypse --version

2. Configure RPC endpoints

.env
PERCOLYPSE_RPC_ETHEREUM=https://...
PERCOLYPSE_RPC_ARBITRUM=https://...
PERCOLYPSE_RPC_BASE=https://...
PERCOLYPSE_EXECUTION_KEY=0x...
PERCOLYPSE_MODE=autonomous

3. Run

terminal
$ percolypse --mode=autonomous --network=multi
[runtime] initializing engine v2.4.1
[network] ethereum ✓ | arbitrum ✓ | base ✓
[engine] signal processor online
[engine] execution router armed
[watch] monitoring 47 protocols across 5 chains
[status] autonomous loop active. no human in loop.
tip

Use the --dry-run flag to simulate execution without submitting transactions. Signals are evaluated and actions are computed but never broadcast.

Architecture

Percolypse is structured as a single continuous loop with four stages. There are no queues, no handoffs, and no human checkpoints between ingestion and execution.

INGESTBlock-by-block state consumption. Events, logs, storage diffs.
EXTRACTSignal detection. Pattern matching across liquidity, flow, and lifecycle.
ROUTEDecision tree traversal. Execution strategy computed by the intelligence layer.
EXECUTEOn-chain action. Transaction constructed, signed, and broadcast.
loop repeats — cycle never terminates

Each stage runs in the same process, sharing in-memory state. There is no network hop between signal extraction and execution routing. The full cycle — from block ingestion to transaction broadcast — targets a sub-3-second round trip.

02

The Loop

The loop is the fundamental unit of Percolypse. It is not a scheduler, not a cron job, not a reactive pipeline. It is a single process that runs continuously and never waits for external input.

The loop binds directly to RPC event streams. Each new block triggers a synchronous pass through all four stages. If no actionable signal is extracted, the loop discards the block and moves to the next. If a signal is extracted and passes risk gating, execution is triggered inline.

percolypse.loop — pseudocode
loop {
block = await rpc.nextBlock()
signals = extract(block.state)
for signal in signals {
if signal.magnitude < threshold { continue }
if !riskGate.passes(signal) { continue }
action = router.resolve(signal)
tx = builder.construct(action)
await executor.broadcast(tx)
}
}
note

The loop is single-threaded per chain. Multi-chain deployments run one loop process per network, coordinated by a shared state store.

Signal Types

Percolypse natively classifies eight signal types. Each type maps to a distinct on-chain pattern and triggers a corresponding class of execution actions.

LIQUIDITY_SHIFT
Liquidity Shift
Pool TVL migration exceeding configurable threshold. Triggers LP rebalancing or position exit.
ARB_WINDOW
Arbitrage Window
Price divergence across DEX venues within a single block. Triggers cross-venue arb route.
MEV_DETECTED
MEV Detected
Sandwich opportunity or backrun vector identified in the mempool. Triggers priority execution.
PRICE_DEVIATION
Price Deviation
Asset price deviates from TWAP beyond sigma threshold. Triggers delta hedge or oracle update.
GAS_SPIKE
Gas Spike
Base fee exceeds strategy cost ceiling. Triggers position hold or deferred execution.
BRIDGE_FINALIZED
Bridge Finalized
Cross-chain bridge message confirmed. Triggers downstream action on destination chain.
POOL_IMBALANCE
Pool Imbalance
Reserve ratio drift detected in AMM pool. Triggers rebalancing or concentrated LP adjustment.
ORACLE_LAG
Oracle Lag
On-chain oracle price diverges from aggregated off-chain feed. Triggers liquidation check.

Execution Engine

The execution engine receives a resolved action from the router and is responsible for constructing, simulating, signing, and broadcasting the transaction.

Transaction lifecycle

constructAction is converted to calldata. ABI encoding, multicall wrapping applied.
simulateTransaction is dry-run against a fork of current state. Revert check.
signCalldata signed with configured execution key. EIP-1559 fee estimation applied.
broadcastTransaction submitted to mempool. Priority fee adjusted per gas signal.
confirmReceipt watched. On revert, signal is marked REJECTED and logged.
warning

Simulation failures are non-fatal. The engine logs the revert reason and continues the loop. A revert rate above RISK_REVERT_THRESHOLD will trigger automatic circuit-breaker activation.

03

CLI Flags

FlagDefaultDescription
--modeautonomousExecution mode. Options: autonomous, monitor, dry-run.
--networkethereumTarget network. Use multi for multi-chain mode.
--threshold30Minimum signal magnitude (0–100) to trigger pipeline.
--max-gas0.05Maximum gas spend per transaction in ETH.
--risk-levelmediumRisk gating profile. Options: conservative, medium, aggressive.
--log-levelinfoLog verbosity. Options: silent, info, verbose, debug.
--dry-runfalseSimulate execution without broadcasting transactions.
--dashboardfalseLaunch the web dashboard alongside the runtime.
terminal
# Multi-chain autonomous mode, medium risk
$ percolypse \
--mode=autonomous \
--network=multi \
--threshold=40 \
--risk-level=medium \
--dashboard

Config File

All CLI flags can be set in percolypse.config.json at the project root. File-based config is merged with CLI flags — CLI takes precedence.

percolypse.config.json
{
"mode": "autonomous",
"network": ["ethereum", "arbitrum", "base"],
"threshold": 35,
"maxGasEth": 0.04,
"riskLevel": "medium",
"signals": {
"enabled": ["LIQUIDITY_SHIFT", "ARB_WINDOW", "ORACLE_LAG"],
"disabled": ["GAS_SPIKE"]
},
"domains": {
"protocols": ["uniswap-v4", "aave-v3", "morpho"]
}
}

Environment Variables

VariableRequiredDescription
PERCOLYPSE_RPC_ETHEREUMyes*Ethereum mainnet RPC endpoint.
PERCOLYPSE_RPC_ARBITRUMyes*Arbitrum One RPC endpoint.
PERCOLYPSE_RPC_BASEyes*Base mainnet RPC endpoint.
PERCOLYPSE_RPC_OPTIMISMyes*Optimism mainnet RPC endpoint.
PERCOLYPSE_RPC_POLYGONyes*Polygon PoS RPC endpoint.
PERCOLYPSE_EXECUTION_KEYyesPrivate key used to sign and broadcast transactions.
PERCOLYPSE_MODEnoOverrides --mode CLI flag.
PERCOLYPSE_WEBHOOK_URLnoPOST target for execution event notifications.
warning

PERCOLYPSE_EXECUTION_KEY grants full signing authority. Never commit this value. Use a dedicated execution wallet with scoped fund limits.

04

Liquidity Shifts

The LIQUIDITY_SHIFT signal fires when Percolypse detects meaningful TVL migration across AMM pools or lending protocol vaults.

Percolypse monitors reserve ratios, deposit/withdrawal event patterns, and cross-protocol TVL deltas in real time. A shift is classified when the 5-block rolling delta exceeds the configured magnitude threshold.

Triggerable actions

Rebalance LP position (Uniswap v4, Balancer, Curve)
Exit and re-enter range on concentrated liquidity pool
Migrate liquidity to higher-yield protocol
Harvest pending fees before migration window closes
percolypse.config.json — liquidity domain
"domains": {
"liquidity": {
"protocols": ["uniswap-v4", "curve", "balancer"],
"threshold": 40,
"windowBlocks": 5,
"action": "rebalance"
}
}

Orderbook Imbalances

Percolypse tracks depth asymmetries, fill-rate anomalies, and spoofing signatures across DEX and hybrid order-book venues. Signal is extracted at the tick level — before the imbalance resolves in price.

Supported venues

Uniswap v4
dYdX v4
Vertex Protocol
Hyperliquid
Pendle AMM
Morpho Markets
note

Orderbook signal extraction requires a WebSocket-capable RPC endpoint. HTTP polling will degrade signal quality and latency.

Token Lifecycle Events

Structural token events — launches, vesting unlocks, governance transitions, protocol migrations — shift token dynamics before market consensus forms. Percolypse identifies these events at contract level and executes ahead of the crowd.

EventCodeTrigger condition
Token launchTKN_LAUNCHNew ERC-20 deployment with initial liquidity provision detected.
Vesting unlockTKN_VESTCliff or linear vesting schedule reaches unlock epoch.
Governance transitionTKN_GOVTimelock queue execution or multisig confirmation detected.
Protocol migrationTKN_MIGProxy upgrade or migration contract interaction logged.
05

Signal Evaluation

The intelligence layer sits between signal extraction and the execution router. It is not advisory — it is inline. Every candidate signal passes through evaluation before a routing decision is made.

Evaluation produces a confidence score (0–1) and a magnitude score (0–100). Signals below the configured threshold are discarded before reaching the router. Signals above the threshold proceed to risk gating.

signal evaluation output
{
"kind": "LIQUIDITY_SHIFT",
"magnitude": 72,
"confidence": 0.91,
"chain": "arbitrum",
"protocol": "uniswap-v4",
"address": "0x1a2b...f9e0",
"decision": "ROUTE"
}

Risk Gating

Risk gating is the final checkpoint before execution. It enforces pre-configured boundaries around gas cost, position size, daily exposure, and revert rate.

GateConservativeMediumAggressive
Max gas / tx0.01 ETH0.04 ETH0.1 ETH
Max position$5,000$50,000unlimited
Daily exposure$20,000$200,000unlimited
Revert threshold5%12%25%
Circuit breaker3 reverts7 revertsdisabled
warning

The circuit breaker halts all execution when the revert threshold is exceeded. It resets automatically after 15 minutes. Manual override requires restarting the runtime with --reset-circuit-breaker.

Action Selection

The router maps evaluated signals to execution actions. Routing is deterministic — given the same signal state, the same action is always selected. There is no randomness and no model sampling in the critical path.

Action selection considers: signal kind, magnitude, protocol context, current gas price, and available capital. The result is a fully-specified action object passed to the execution engine.

action object
{
"action": "rebalance LP position",
"protocol": "uniswap-v4",
"chain": "arbitrum",
"calldata": "0x...",
"gasLimit": 280000,
"maxFeePerGas": "12 gwei",
"valueEth": 0,
"simulate": true
}
06

Webhooks

Set PERCOLYPSE_WEBHOOK_URL to receive POST notifications for all execution events.

Payload shape

webhook payload (application/json)
{
"event": "execution.resolved",
"timestamp": 1743950400000,
"data": {
"txHash": "0xabc...def",
"action": "execute arb route",
"chain": "arbitrum",
"protocol": "uniswap-v4",
"status": "SUCCESS",
"valueUsd": 12480.50,
"gasEth": 0.0021,
"latencyMs": 843
}
}

Event types

EventFires when
execution.resolvedTransaction confirmed on-chain (success or revert).
signal.detectedA signal is extracted and passes magnitude threshold.
signal.rejectedA signal is dropped by risk gating.
circuit_breaker.triggeredRevert threshold exceeded. Execution halted.
loop.startedRuntime initializes and begins the loop.
loop.pausedRuntime is manually paused or circuit-broken.

REST API

When started with --dashboard, Percolypse exposes a local REST API on port 4242.

MethodEndpointDescription
GET/api/statusRuntime status, uptime, and active chain connections.
GET/api/signalsRecent signal feed (last 200 entries).
GET/api/pipelinesActive and recent pipeline states.
GET/api/executionsExecution log with tx hashes and outcomes.
GET/api/metricsAggregated metrics: exec/hr, latency, success rate.
POST/api/pausePause the execution loop (signals still ingested).
POST/api/resumeResume a paused execution loop.
POST/api/reset-circuit-breakerManually reset an active circuit breaker.
terminal
# Check runtime status
$ curl http://localhost:4242/api/status
{ "status": "running", "uptime": 3720, "chains": 5 }
Ready to run?
Open the live dashboard to monitor execution in real time.
Open Dashboard →