PKT Units and Fees¶
As with all blockchains, every transaction of PKT is exact, however unlike other blockchains, the number of atomic units in the PKT coin is not a power of 10.
With Bitcoin there are 100,000,000
atomic units ("satoshis") per bitcoin. With PKT there are 2 to the 30th power
(1,073,741,824
) atomic units. While this is strange number in base-10, in binary it is a perfectly even 1 followed
by thirty zeros.
The binary nature of PKT has a few caveats, for example it means sending 0.01 PKT
is actually impossible.
This is because 0.01
would corrispond to 10,737,418.24
atomic units. Since they are atomic (indivisible), this
must be rounded to the nearest whole number: 10,737,418
. When this divided by 230, it results in
0.009999999776482582
. Therefore, all GUI wallets and explorers adopt the following convension:
- PKT amounts are always expressed with two decimal places and rounded to nearest, so
1,084,479,242
atomic units is displayed as1.01 PKT
. - If the amount is less than
1 PKT
, the amount is displayed as milli-pkt or mPKT and multiplied by1,000
, so10,737,418
atomic units is displayed as10.00 mPKT
- If the amount is less than
1 mPKT
, the amount is displayed as micro-pkt or μPKT and multiplied by1,000,000
, so107,374
atomic units is displayed as100.00 μPKT
. - If the amount is less than
1 μPKT
, the amount is displayed as nano-pkt or nPKT and multiplied by1,000,000,000
, so107
atomic units is displayed as99.64 nPKT
. A single atomic unit is displayed as0.93 nPKT
.
While these are the convensions adopted by all GUI wallets and explorers. Exchanges and merchants may choose to forbid
transaction of amounts less than 1 PKT
, thus they need only implement #1 because they will never display an amount
of less than 1 PKT
.
Fees¶
PKT uses bitcoin-like computation for determining fees. Because the blockchain has a 1 minute block time, there is generally plenty of space for transactions in the blocks and the typical fee is the minimum: 1 atomic unit per byte of transaction size.
The size of a transaction depends on the number of transaction inputs and outputs. The number of outputs is simply the number of addresses you are paying, plus one more to re-route change back to yourself. The number of inputs depends on where the coins you are sending have been sourced from. If you are mining PKT, then you may have many tiny transactions which you need to aggregate in order to make a payment.
Currently, wallets do not create transactions with more than 1,460
inputs. This results in a transaction of just
under 100,000
bytes and thus costing right around 100,000
atomic units or 93.13 μPKT
, that is micro-pkt or
millionths of a PKT (for the largest possible transaction).
A more typical transaction size would be around 1,000
bytes and thus cost 1,000
atomic units, or 931.32 nPKT
(billionths of 1 PKT).
In almost every case, the fees will disappear when the transaction is rounded to display the 2 decimal places.
It is possible, though vanishingly unlikely that your wallet could display 10.00 PKT
and after sending exactly
5 PKT
your wallet displays 4.99
. This would happen if the actual amount you had was 9.555555556 PKT
,
rounded to 10.00
and after sending exactly 5 PKT
, the miniscule fee caused it to cross a rounding boundary and
become 4.555555553
.
If you wish to perform analytical accounting, it is recommended that you deal exclusively in atomic units, represented as an int64, and only represent PKT for display purposes.