Everything you need to know about Kazt, ACE rules, and the Rule Forge. From concept to on-chain deployment.
ACE (Application Controlled Execution) is a framework that lets Solana protocols define their own transaction execution rules. Instead of relying on default validator ordering -- where the leader node decides transaction sequence based on fees and arrival time -- protocols can specify exactly how their transactions are sequenced, batched, matched, and filtered.
In the default Solana execution model, validators process transactions in whatever order they choose. This creates an opportunity for MEV (Maximal Extractable Value) searchers to insert their own transactions before or after yours, extracting profit at your expense. ACE changes this by giving the application control over execution, not the validator.
The term "application controlled" is key. It means the protocol itself -- the DEX, the lending platform, the perpetuals exchange -- gets to define transaction ordering rules, not the block producer. This is a fundamental shift in how Solana transactions are processed. The protocol becomes the authority on execution policy.
ACE rules are deployed through Jito BAM (Block Auction Marketplace), the infrastructure layer that connects protocols to Solana validators. When a protocol publishes ACE rules to BAM, validators that participate in the Jito network agree to respect those rules when producing blocks. This creates an enforceable contract between the protocol and the network.
BAM also integrates with TEE-based encrypted mempools (Trusted Execution Environments). Transactions are encrypted before entering the mempool, so validators and searchers cannot read transaction contents until after ordering decisions are made. This provides a cryptographic guarantee that MEV extraction is not possible, even if a validator is compromised.
TL;DR
ACE = custom transaction execution rules for Solana protocols. Protocols define ordering, batching, matching, priority, and filtering rules. Rules are deployed via Jito BAM and enforced by validators. TEE encryption prevents front-running at the mempool level.
MEV (Maximal Extractable Value) refers to the profit that block producers and searchers can extract by manipulating the order of transactions within a block. On Solana, MEV extraction is estimated to cost regular users $5-10 million per day -- a hidden tax on every swap, every trade, and every DeFi interaction.
Sandwich Attack -- Step by Step
Front-running is a simpler variant: a bot sees your pending transaction, submits the same trade with a higher fee to ensure it executes first, and profits from the price movement your transaction will cause. This is possible because default Solana ordering prioritizes fee-paying transactions.
Transaction reordering is the most general form of MEV. Validators or searchers rearrange transaction order within a block to maximize their own profit. This can affect liquidations, arbitrage opportunities, oracle updates, and any time-sensitive DeFi operation.
For regular users, MEV is an invisible cost. You set 1% slippage on a swap thinking that is your maximum cost, but MEV bots consistently push you to that slippage limit, extracting the difference as profit. Over time, this amounts to billions of dollars transferred from regular users to sophisticated automated systems.
How ACE Solves It
ACE eliminates MEV by removing the validator's ability to reorder transactions for profit:
Today, writing ACE rules requires deep expertise in Rust, Solana's runtime, the Anchor framework, and the Jito BAM SDK. A typical rule configuration takes 3-7 days of manual coding by an experienced Solana developer, and around 40% of Jito BAM setups fail on the first attempt due to configuration complexity, parameter mismatches, or dependency errors.
This means only well-funded protocol teams with dedicated Solana developers can protect their users from MEV. Smaller protocols, individual traders, and new projects are left exposed.
Kazt is a visual ACE rule builder. It replaces the entire manual coding process with a drag-and-drop canvas where you assemble rule blocks, connect them to define execution flow, simulate with sample transactions, and export production-ready code. No Rust knowledge required. No command-line tools. No configuration files to manually edit.
Before Kazt vs. After Kazt
Before (CLI)
After (Kazt)
For Protocol Teams
Protect your users from MEV without hiring a dedicated Solana/Rust developer. Deploy ACE rules in minutes instead of days. Iterate on rule configurations with instant visual feedback.
For Individual Traders
Understand how MEV protection works by building and simulating rules. Use the marketplace to purchase proven rule configurations from experienced builders.
For Developers
Rapid prototyping for ACE rules. Build visually, export as Anchor IDL, then customize the generated Rust code in your own development environment. Cut days of boilerplate.
Kazt provides five fundamental building blocks that combine to form any ACE rule configuration. Each block represents a distinct phase of transaction processing. Blocks are connected on the forge canvas to define the execution pipeline -- transactions flow through each block in sequence.
You can use any combination of blocks. A minimal rule might use only a Filter and an Ordering block. A comprehensive rule set for a DEX might chain all five: Filter incoming transactions, Batch them into groups, Order within each batch, Match buy and sell sides, then apply Priority scoring for execution preference.
Define how transactions are sequenced before execution. Ordering blocks determine the queue discipline applied to incoming transactions. Without explicit ordering, validators use default leader scheduling which is vulnerable to MEV extraction. By enforcing FIFO, price-time, or pro-rata ordering, protocols ensure fair sequencing that cannot be manipulated by searchers or block producers.
Group multiple transactions into a single batch for efficient processing. Batching blocks collect transactions over a configurable time window and execute them atomically. This prevents sandwich attacks because all transactions in a batch are treated as simultaneous -- there is no 'before' or 'after' within a batch for an attacker to exploit.
Determine how buy and sell orders are paired together. Matching blocks define the trade execution engine used to pair counterparties. Different matching engines serve different protocol types -- CLOB for orderbook DEXs, AMM for liquidity pool protocols, and RFQ for institutional or OTC flows.
Assign priority scores to transactions based on configurable factors. Priority blocks let protocols define what makes a transaction 'important' in their context. Instead of defaulting to fee-based priority (which favors MEV extractors with deep pockets), protocols can weight stake holdings, token balances, or custom criteria.
Screen transactions before they enter the execution pipeline. Filter blocks act as gatekeepers, allowing protocols to block known MEV bots, enforce transaction size limits, or restrict access to whitelisted addresses. Filters run before all other blocks, so rejected transactions never consume processing resources.
Each block type has configurable parameters that control its behavior. When you select a block on the forge canvas, its parameters appear in the properties panel on the right side. This section is a complete reference for every parameter available on each block type.
Parameters with enum types present a dropdown selector. Numeric parameters show a slider with min/max bounds. Boolean parameters are toggles. Address arrays open an editor where you can paste Solana public keys one per line.
| Parameter | Type | Values | Description |
|---|---|---|---|
| method | enum | FIFO | price_time | pro_rata | Queue discipline for incoming transactions |
| tiebreaker | enum | timestamp | fee | random | How to resolve ties when two transactions have equal priority |
| Parameter | Type | Values | Description |
|---|---|---|---|
| interval_ms | int | 50 - 5000 | Time window in milliseconds to collect transactions before executing the batch |
| max_batch | int | 1 - 200 | Maximum number of transactions per batch |
| min_batch | int | 1 - 50 | Minimum transactions required to trigger batch execution |
| Parameter | Type | Values | Description |
|---|---|---|---|
| engine | enum | clob | amm | rfq | Trade matching algorithm used to pair buy and sell orders |
| partial_fill | bool | true | false | Whether to allow partial order fills or require all-or-nothing execution |
| Parameter | Type | Values | Description |
|---|---|---|---|
| factor | enum | stake | fee | token_hold | The metric used to calculate transaction priority score |
| weight | float | 0.1 - 10.0 | Multiplier applied to the priority factor (higher = more impact) |
| Parameter | Type | Values | Description |
|---|---|---|---|
| blacklist | address[] | Pubkey list | Array of Solana addresses to block from submitting transactions |
| whitelist | address[] | Pubkey list | Array of Solana addresses allowed to submit (if set, all others blocked) |
| max_size | float | 0.01 - 100000 SOL | Maximum transaction value in SOL |
| min_size | float | 0.001 - 1000 SOL | Minimum transaction value in SOL |
The Rule Forge is Kazt's core interface -- a visual canvas built on React Flow where you assemble ACE rule pipelines by dragging, dropping, and connecting blocks. The forge is divided into three areas: a block palette on the left, the canvas in the center, and a properties panel on the right.
The block palette contains all five block types (Ordering, Batching, Matching, Priority, Filter) as draggable items. Click or drag a block to place it on the canvas. The canvas is an infinite, pannable workspace where blocks appear as nodes with input and output ports. Connect blocks by dragging from an output port to an input port -- this defines the transaction flow. The properties panel shows the configurable parameters for whichever block is currently selected.
As you build, the forge provides real-time validation feedback. Invalid connections (like connecting two output ports) are rejected. Circular dependencies are detected and highlighted with a red border. Conflicting parameters (like a Filter block with the same address on both blacklist and whitelist) trigger a warning badge on the block.
Drag rule blocks from the palette onto the canvas. Connect them to define execution flow. Each block has configurable parameters you can tune in the properties panel. Zoom in and out with scroll, pan by dragging empty canvas space. Blocks snap to a grid for clean layouts.
The built-in conflict detection engine checks for circular dependencies, duplicate block types, and parameter mismatches in real time. Issues appear as colored badges on affected blocks -- red for errors (must fix before export), yellow for warnings (recommended to fix). The validation panel lists all issues with one-click navigation to the problem block.
Run 1-20 sample transactions through your rule pipeline. The simulator generates realistic transaction data including normal swaps, potential sandwich attacks, and edge cases. See which transactions get included, filtered, reordered, or batched. A detailed report shows the outcome for each transaction. See the Simulation section below for full details.
Export your rules as JSON for storage and sharing, or generate Anchor IDL code for direct on-chain deployment via Jito BAM. JSON export is available at Basic tier and above. Anchor IDL export requires Pro tier. See the Export & Deploy section below for full details on each format.
The simulator is your testing ground before deploying rules to mainnet. It generates realistic sample transactions and runs them through your rule pipeline, showing you exactly how each transaction would be processed. This catches configuration errors, unexpected filter behavior, and performance issues before they affect real users.
You can run simulations with 1 to 20 transactions per run. The simulator generates a mix of transaction types: normal swaps, potential sandwich attack pairs, large transactions near size limits, and edge cases specific to your block configuration. Each simulation run produces a detailed SimulationReport.
Transaction Outcomes
SimulationReport Contents
total_txns: number of transactions in the simulation
included: count and list of included transactions
filtered: count and list of filtered transactions with reasons
batched: count and batch assignments
rejected: count and error details
ordering: final transaction sequence after all rules applied
conflicts: any detected rule conflicts or warnings
exec_time_ms: simulation execution time in milliseconds
Interpreting conflict warnings: If the simulator detects that two blocks produce conflicting results (for example, a Priority block promotes a transaction that a Filter block would reject), it generates a conflict warning. Conflict warnings do not prevent the simulation from completing, but they indicate that your rule set may behave unpredictably. Resolve all warnings before exporting for production use.
Once your rules pass validation and simulation, you can export them in two formats. The format you choose depends on your workflow and tier level.
JSON Export
Available: Basic tier+
Exports your entire rule set as a structured JSON file. This is the universal format -- it can be stored in version control, shared with teammates, loaded back into the forge, or used as input for custom deployment scripts.
Contents:
Anchor IDL Export
Available: Pro tier+
Generates production-ready Rust code using the Anchor framework. This is compilable Solana program code that implements your rule set as an on-chain program, complete with instruction handlers, account validation, and error types.
Contents:
Jito BAM Deployment Flow
The tier system controls access to Kazt features based on how many $KAZT tokens you hold in your connected wallet. Tiers are determined in real time -- the moment your token balance crosses a threshold, your tier updates automatically. There is no staking or locking required; simply holding the tokens in your wallet is sufficient.
The tier system exists for two reasons: (1) to align incentives between power users and the protocol, and (2) to manage backend resources. Higher tiers consume more compute (simulation, code generation, on-chain deployment), so token holding ensures sustainable infrastructure costs.
Rate Limits by Tier
| Tier | Threshold | Designs/Day | Simulations/Day |
|---|---|---|---|
| Free | 0 KAZT | 3 | 10 |
| Basic | 1,000 KAZT | 50 | 200 |
| Pro | 10,000 KAZT | 500 | 2,000 |
| Elite | 100,000 KAZT | Unlimited | Unlimited |
| Whale | 1,000,000 KAZT | Unlimited | Unlimited |
Hold $KAZT tokens to unlock progressively more powerful forge capabilities.
The Template Marketplace is where experienced ACE rule builders publish verified rule sets and other users purchase them. Think of it as a library of battle-tested MEV protection configurations that you can buy, load into your forge, customize, and deploy -- all without building from scratch.
Templates are priced in $KAZT tokens. The standard fee split is 95% to the seller, 5% to the protocol treasury. Whale tier sellers enjoy a reduced protocol fee of 2.5%, receiving 97.5% of each sale. This incentivizes experienced builders to create and maintain high-quality templates.
For Buyers
Browse verified templates with descriptions, block counts, preview visualizations, and seller reputation scores. Each template shows which block types are included and what parameters are pre-configured.
After purchase, the template loads directly into your forge canvas. All blocks, connections, and parameters are pre-set. You can use the template as-is or customize any parameter to fit your protocol's specific needs.
For Sellers
Build, test, and publish your rule configurations to earn $KAZT from every sale. To publish, your template must pass validation with zero errors and include at least one successful simulation run.
Set your own price in $KAZT. Provide a clear description, use-case tags, and recommended protocol types. Templates with more sales and positive ratings rank higher in marketplace search results.
How to Publish a Template
Seed Templates
This section is for technically curious users who want to understand how Kazt is built under the hood. Kazt follows a standard modern web architecture with a Next.js frontend, a FastAPI backend, and integrations with Solana infrastructure.
Frontend
Backend
Blockchain Integrations
System Flow Diagram
+----------+ +----------+ +-----------+
| | | | | |
| User +--->+ Web App +--->+ Rule |
| (Browser)| | (Next.js)| | Canvas |
| | | | | (React |
+----------+ +-----+----+ | Flow) |
| +-----+-----+
| |
+-----v----+ +------v------+
| | | |
| FastAPI | | Validator |
| Backend | | (conflict |
| (Python) | | detection) |
| | | |
+-----+----+ +------+------+
| |
+-----v----+ +------v------+
| | | |
| Postgres | | Simulator |
| + Redis | | (test txns) |
| | | |
+----------+ +------+------+
|
+------v------+
| |
| Exporter |
| (JSON / |
| Anchor) |
+------+------+
|
+------v------+
| |
| Jito BAM |
| (on-chain |
| deploy) |
+-------------+API Endpoints (Preview)
POST /api/v1/rules/create -- Create a new rule set
GET /api/v1/rules/{id} -- Retrieve a rule set by ID
POST /api/v1/simulate -- Run a simulation against a rule set
POST /api/v1/export/json -- Export rule set as JSON
POST /api/v1/export/anchor -- Export rule set as Anchor IDL
GET /api/v1/marketplace -- Browse marketplace templates
POST /api/v1/marketplace/publish -- Publish a template
GET /api/v1/user/tier -- Check current user tier level
No. Kazt is a fully visual builder. You drag blocks onto a canvas, configure parameters through a properties panel, and the forge generates production-ready Rust code (Anchor IDL) or JSON configuration for you. You never need to write a single line of Rust, though you can always inspect and modify the generated output if you choose.
The simulator runs your rules against realistic sample transaction data including normal swaps, potential sandwich attacks, and edge cases. It accurately models how your rule pipeline would process each transaction. However, on-chain behavior may differ under extreme network congestion or if the underlying protocol changes its transaction format. We recommend testing on devnet before mainnet deployment.
Yes. JSON export is always available at Basic tier and above. Anchor IDL export (which generates Rust code) is available at Pro tier and above. Both formats are fully editable -- you own the output. Many advanced users export from Kazt, then fine-tune specific parameters in their own development environment before deploying.
The built-in conflict detection engine performs real-time dependency graph analysis as you build. It catches circular references (Block A depends on Block B which depends on Block A), duplicate ordering rules, contradictory filter settings (same address on both blacklist and whitelist), and parameter mismatches. You cannot export a rule set that has unresolved conflicts.
The marketplace lets experienced builders publish verified rule templates that other users can purchase with $KAZT tokens. Each template includes a description, block count, preview visualization, and the seller's verification status. After purchase, the template loads directly into your forge canvas where you can customize it. Sellers receive 95% of each sale (2.5% for Whale tier sellers), with the remainder going to the protocol treasury.
$KAZT is the SPL utility token that powers the Kazt ecosystem. Its primary uses are: (1) Hold tokens to unlock forge tiers with progressively more features, (2) Purchase templates from the marketplace, (3) Earn by selling your own templates, (4) Access premium features like on-chain deployment and API access. The token is on the Solana blockchain and can be traded on supported DEXs.
Yes, the Free tier lets you create up to 3 rule designs per day and run simulations without holding any $KAZT tokens. However, Free tier does not include save or export functionality. To unlock saving, exporting, and advanced features, you need to hold $KAZT tokens to qualify for a higher tier (Basic starts at 100,000 KAZT).
Click the 'Connect Wallet' button in the top navigation bar. Kazt supports all major Solana wallets including Phantom, Solflare, Backpack, and Ledger (via adapter). Once connected, the app automatically reads your $KAZT token balance to determine your tier level. Your wallet address is also used to sign rule exports and marketplace transactions.
Kazt is built exclusively for Solana. ACE (Application Controlled Execution) is a Solana-native framework, and the Jito BAM (Block Auction Marketplace) operates only on the Solana network. There are currently no plans to support other chains, as the ACE framework is tightly integrated with Solana's validator architecture and leader scheduling.
Rule designs for logged-in users (Basic tier and above) are stored in our PostgreSQL database, encrypted at rest. Your wallet address and tier level are cached in Redis for performance. We do not store your private keys -- wallet interactions are handled entirely client-side through standard Solana wallet adapters. Free tier users' designs exist only in browser memory and are lost when the page is closed.
Yes. The Free tier is available to everyone with zero $KAZT balance. You can design up to 3 rule sets per day and run simulations to learn how ACE rules work. This is a great way to explore the platform before committing to a token purchase. However, you will need at least Basic tier (100,000 KAZT) to save your work or export configurations.
JSON export produces a human-readable configuration file that describes your rule set -- block types, connections, and all parameters. This is useful for storage, sharing, version control, and loading back into the forge. Anchor IDL export generates actual Rust program code using the Anchor framework, ready for compilation and on-chain deployment via Jito BAM. JSON is available at Basic tier; Anchor IDL requires Pro tier or above.
Pour your rules. Set them in chain.