CLI › Transactions
Transactions
The core ATF workflow: simulate a transaction against the policy engine, verify the receipt, then execute with confidence.
Permit Parameters and Enforcement Model
Every ATF transaction begins with a permit: a structured declaration of intent that describes what the transaction is allowed to do. Today, swap permits are the primary type. The model is extensible to other permit types in the future.
Where parameters are defined
Permit parameters can be supplied from several sources. When multiple sources are present, ATF uses the most explicit input as the source of truth:
- CLI flags (highest priority, e.g.
--slippage-bps 50) - Policy JSON file (referenced via
--policy) - Preset selection (e.g.
--preset swap_small) - Profile config (defaults set in the active profile)
Explicit CLI flags override policy file values, which override preset defaults, which override profile-level configuration.
What ATF enforces
- Allowed mint pairs (input and output tokens)
- Maximum amount and size bounds
- Slippage bounds (basis points)
- Protocol allowlist (e.g. Jupiter)
- TTL and expiry on permits
- Nonce and replay protection
- Network constraints (devnet vs mainnet)
- Deterministic receipt hashing and verification
What ATF does not do
- Choose slippage for you
- Choose token pairs on your behalf
- Decide trade sizes
- Custody your private keys
- Auto-route trades or execute without developer intent
The developer defines intent. ATF enforces and proves it. You declare what your transaction should do, within what bounds, and for which tokens. ATF evaluates that intent against the active policy, produces a deterministic receipt, and gives you a verifiable proof that the rules were applied correctly. ATF never invents trade parameters or makes decisions on your behalf.
For a full glossary of swap permit parameters, see the Swap Permits guide →
Simulate
Run a deterministic firewall simulation with policy evaluation. The CLI calls the ATF API with your transaction payload, receives a policy decision, and optionally verifies receipt integrity.
Simulate with preset
npx @trucore/atf@1.5.1 simulate --preset swap_small --verifySimulate with custom payload
npx @trucore/atf@1.5.1 simulate --payload ./my-tx.json --verifySimulate, Verify, Execute
The recommended workflow for production-grade safety:
- Simulate the transaction against the ATF policy engine.
- Verify the receipt locally using
--verify. The CLI recomputes the content hash and confirms it matches the server response. - Execute only if the decision is ALLOWED and verification passes.
Full flow
npx @trucore/atf@1.5.1 simulate --preset swap_small --verify && npx @trucore/atf@1.5.1 tx send --receipt lastSign
Sign a transaction with the wallet from your active profile.
Sign transaction
npx @trucore/atf@1.5.1 tx sign --payload ./my-tx.jsonSend
Submit a signed transaction to the network.
Send transaction
npx @trucore/atf@1.5.1 tx send --signed ./signed-tx.jsonSend using last receipt
npx @trucore/atf@1.5.1 tx send --receipt lastCheck Status
Check confirmation status of a submitted transaction by signature.
Check status
npx @trucore/atf@1.5.1 tx status --sig 5UBb...xYz3Transaction: 5UBb...xYz3 Status: confirmed Confirmations: 31 Slot: 284,291,088 Block time: 2026-02-27T19:01:22Z
Available Presets
| Preset | Description |
|---|---|
| swap_small | Small token swap under policy limits. |
| swap_large | Larger swap that may trigger policy limits. |
| transfer | Simple SOL transfer with basic policy checks. |
Common Flags
| Flag | Description |
|---|---|
| --preset <name> | Use a built-in test payload. |
| --payload <path> | Path to a custom JSON transaction payload. |
| --verify | Locally verify receipt integrity after simulation. |
| --json | Output results as JSON for scripting. |
| --receipt last | Reference the most recent simulation receipt. |