Appearance
Gas and fees
Gas works exactly as it does on Ethereum: every operation costs gas, and the fee is gas used multiplied by the gas price.
Minimum gas price is zero
The network's minimum-gas-prices is 0aknyx. Validators accept transactions at a zero price, so transactions on this testnet are effectively free.
That makes experimenting cheap, but it also means your library's gas estimation may suggest a price of zero. That is expected here and would not be on a network with a non-zero floor.
Typical costs
| Operation | Gas |
|---|---|
| Native KNYX transfer | 21,000 |
| ERC-20 transfer | ~35,000 |
| AMM swap | ~120,000–200,000 |
| Add liquidity | ~160,000–250,000 |
| Contract deployment | Varies with size |
These are observed values from real transactions on this chain. An actual bridge payout of native KNYX used exactly 21,000 gas, and an ERC-20 payout used 34,527.
Estimating
js
const estimate = await contract.someMethod.estimateGas(...args);
const tx = await contract.someMethod(...args, {
gasLimit: estimate * 12n / 10n, // 20% headroom
});Adding headroom matters when a call's cost depends on state that may change between estimation and execution — a swap crossing a different amount of liquidity, for example.
Why a transaction fails
| Error | Cause |
|---|---|
insufficient funds | Balance below value plus gas cost |
execution reverted | The contract rejected the call; the reason string usually says why |
nonce too low | A transaction with that nonce already landed |
replacement transaction underpriced | Replacing a pending transaction needs a higher gas price |
| Gas estimation fails | The call would revert. Estimation simulates first, so this is a real failure surfacing early |
When estimation fails, the revert reason is the useful part — read it rather than raising the gas limit, which will not help.
See Troubleshooting for protocol-specific errors from the AMM and the bridge.