Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt

Use this file to discover all available pages before exploring further.

StableNet supports all standard Ethereum transaction types plus one StableNet-native type for fee delegation.

Supported Types

TypeValueEIPDescription
Legacy0x00Pre-EIP-2718 format. No chain ID in the body.
Access List0x01EIP-2930Includes chainId and accessList to pre-declare accessed storage slots.
Dynamic Fee0x02EIP-1559Uses maxFeePerGas and maxPriorityFeePerGas. Recommended for all new transactions.
Blob0x03EIP-4844Data availability transactions. Not supported on StableNet (blob opcodes excluded).
Set Code0x04EIP-7702Code delegation.
Fee Delegated0x16StableNetTwo-signature transaction where a separate fee payer covers gas costs.
The standard transaction type for most use cases. Requires setting both fee fields.
{
  type: 2,
  chainId: 8283,
  nonce: 1,
  to: "0xRecipient",
  value: "0xDE0B6B3A7640000",   // 1 WKRC
  gas: "0x5208",                  // 21000
  maxFeePerGas: "0x1286AE6000",  // 80000 Gwei
  maxPriorityFeePerGas: "0x1919B00000", // 27600 Gwei
  data: "0x",
  accessList: []
}

Type 0x16 — Fee Delegated (StableNet-native)

Adds a feePayer field and a second signature (fv, fr, fs). The fee payer pays gas; the sender pays only the transfer value.
{
  type: 0x16,
  chainId: 8283,
  nonce: 1,
  to: "0xRecipient",
  value: "0xDE0B6B3A7640000",
  gas: "0x76C0",
  maxFeePerGas: "0x1286AE6000",
  maxPriorityFeePerGas: "0x1919B00000",
  feePayer: "0xFeePayerAddress",
  input: "0x",
  accessList: [],
  // Sender signature
  v: "0x0", r: "0x...", s: "0x...",
  // Fee payer signature
  fv: "0x0", fr: "0x...", fs: "0x..."
}
Requirements:
  • Applepie fork must be active
  • Both signatures required before broadcast
  • tx.origin is always the sender (fee payer is invisible to contract execution)

Signing in ethers.js

// Type 0x02
const tx = await wallet.sendTransaction({
  to: recipient,
  value: ethers.parseEther("1.0"),
  maxPriorityFeePerGas: ethers.parseUnits("27600", "gwei"),
  maxFeePerGas: ethers.parseUnits("80000", "gwei"),
});

// Type 0x16 — see Fee Delegation Tutorial for full flow