Kaspalytics Learn is a work in progress.
Updated: Aug 2, 2026

Units (KAS & Sompi)

Kaspa's units - sompi, KAS, and the mass units used for fees.

Sompi

The base unit of Kaspa is the sompi (named for Yonatan Sompolinsky). All protocol-level amounts - transaction outputs, fees, RPC values, SDK APIs - are integers denominated in sompi.

1 KAS = 100,000,000 sompi (10^8)
AmountIn KAS
1 sompi0.00000001 KAS
100 sompi0.000001 KAS
10,000 sompi0.0001 KAS
1,000,000 sompi0.01 KAS
100,000,000 sompi1 KAS
10,000,000,000 sompi100 KAS

“KAS” is purely a display convention - the protocol never deals in fractional values. When writing software against a node or SDK, always work in sompi and convert to KAS only at the UI edge.

Mass (grams)

Transaction size/cost is measured in mass, denominated in grams. A transaction is constrained along three mass dimensions - compute mass, storage mass, and transient mass - with blocks capped at 500,000 grams per dimension (the transient dimension was raised to 1,000,000 in the June 2026 Toccata hardfork). See Network Parameters.

Fees

Fees are paid implicitly, UTXO-style: fee = sum(inputs) - sum(outputs), in sompi.

The expected fee for a transaction is its fee rate × mass, where fee rate is in sompi per gram. Nodes suggest fee rate buckets (priority / normal / low) via the GetFeeEstimate RPC. The minimum relay fee rate is 100 sompi per gram (raised from 1 at the Toccata hardfork), so a typical ~2,000-3,000 gram payment transaction costs a few hundred thousand sompi (~0.002-0.003 KAS) - still a tiny fraction of a cent.

Which mass? Not the sum of the three. The mempool normalizes the dimensions against each other and prices the largest one, so your fee is set by your worst dimension and the other two are free. A transaction that is heavy on storage mass but light on compute pays for the storage; padding it with extra compute up to that same level costs nothing more. The relay-fee floor above is narrower still - it applies only to compute and transient mass, on the grounds that storage growth is already bounded by the block limits.

Kaspalytics strives to provide accurate data - our highest level of effort is given to data validation and maintenance. However, we cannot guarantee 100% accuracy. Data is subject to inaccuracies and change.

Contact | © 2026 Kaspalytics