Integer maths, start to finish
Your typing goes straight into a BigInt and comes back out the same way. No amount is ever a floating-point number, so an eighteen-decimal balance keeps every digit it arrived with.
Move an amount between BTC, mBTC, bits and satoshis, between ether, gwei and wei, or across any token's own decimals, with the exact base-unit integer ready to paste into a contract call or a block explorer.
1 BTC is 1 BTC and 100000000 sats.
The integer a contract call, an explorer, or an RPC response uses for 1 BTC.
Every field is an input. The one you last typed in is marked as the source.
| Unit | Symbol | In sats | In BTC | Where you meet it |
|---|---|---|---|---|
| bitcoin | BTC | 100,000,000 | 1 | Exchange tickers, wallet balances, and every headline price. |
| millibitcoinalso millibit | mBTC | 100,000 | 0.001 | A denomination setting in Electrum and a few European exchanges. |
| bitalso microbitcoin, µBTC | bits | 100 | 0.000001 | The 2017 proposal for retail pricing; still an option in some wallets. |
| satoshi | sats | 1 | 0.00000001 | Lightning invoices, fee rates in sat/vB, and every on-chain output. |
In JavaScript, 1.1 × 1e18 returns 1100000000000000100, a hundred wei that never existed. Every value here is built by moving a decimal point through a string, so what you copy is what the chain stores.
A 21,000-gas transfer at 30 gwei costs 630,000 gwei, which is 0.00063 ETH. Wallets show gwei, contracts and RPC replies deal in wei, and the gap between them is where fee mistakes start.
USDC uses 6, WBTC uses 8, most ERC-20s use 18, and a few use none at all. Read decimals() from the contract before trusting a balance; assuming 18 is how a $5 transfer becomes $5,000,000.
This page converts numbers and nothing else. It does not look up token addresses, read balances, connect a wallet, or fetch a price; there is no network call anywhere in it, so every figure comes from what you typed. Confirm the amount, the unit, and the destination inside your wallet before signing: an on-chain transfer cannot be undone, and a converter cannot check a transaction for you.
Once the position size is settled, find what the trade actually returned after both exchange fees.
Block and transaction timestamps arrive as epoch seconds; turn them into a readable date and back again.
The same milli-and-micro prefix ladder, applied to length, mass, data, and temperature instead.
A denomination is not a currency conversion: the units of a chain differ only by a power of ten. This page holds your amount as a single whole number of base units, then renders that number at each unit's own decimal position, which is why nothing drifts and every field agrees.
Bitcoin, Ethereum, or a token of your own. A custom token needs two things: its ticker and the number its decimals() function returns (six for USDC, eighteen for most ERC-20s).
Enter 30 in the gwei box or 0.05 in the ether box; every other field on the ladder rewrites itself on the keystroke, and the one you touched is flagged as the source.
Each row has its own copy button and the figure at the top is the base-unit integer explorers and contract calls expect. Copies always come out ungrouped, whatever the display is doing.
Your typing goes straight into a BigInt and comes back out the same way. No amount is ever a floating-point number, so an eighteen-decimal balance keeps every digit it arrived with.
No from-and-to dropdowns to set up. BTC, mBTC, bits and sats (or ether, finney, szabo, gwei and wei) all recalculate from whichever box currently has your cursor in it.
There is no such thing as 1.5 satoshi. Type one and the tool says so, because quietly rounding to 1 or 2 is exactly how a copied amount stops matching the transaction you meant to send.
Name the ticker, set the decimals, and get a matching ladder with milli and micro rungs wherever there is room for them. A six-decimal stablecoin and an eighteen-decimal token are one field apart.
Commas, spaces, underscores, apostrophes, a leading plus, a bare .5 and stray leading zeros all parse cleanly. Minus signs, letters, hex prefixes and anything past a uint256 come back with a reason.
Supply a rate yourself and see what the amount is worth, down to fractions of a cent for a single satoshi. Nothing is fetched, nothing is sent, and the line always says the price came from you.
Exactly 100,000,000. The satoshi is the smallest unit the Bitcoin protocol recognises, so every on-chain amount is a whole number of them. That makes 0.001 BTC 100,000 sats, and the 546-sat dust threshold 0.00000546 BTC.
One ether is 10^18 wei, a quintillion. Gwei is 10^9 wei, so an ether is a billion gwei and a gwei is a billionth of an ether. Gas is quoted in gwei purely for legibility: the same fee in wei is a wall of digits, and in ether it is a string of leading zeros.
That depends entirely on the ether price, and this page deliberately has no price feed. Put the rate you want into the optional price box and the value line follows it. At 3,000 per ETH, one gwei is 0.000003, and a 21,000-gas transfer at 30 gwei costs 0.00063 ETH, about 1.89.
Because it cannot exist. A satoshi is indivisible on-chain, and wei works the same way on Ethereum: outputs and balances are whole numbers of the base unit. Handing back a rounded 1 or 2 would be returning an amount you never typed, so the tool refuses and explains instead.
Names from Ethereum's early years: szabo is a microether (10^12 wei) and finney a milliether (10^15 wei), after Nick Szabo and Hal Finney. Solidity removed them as unit suffixes in version 0.7, so today they turn up mainly in older contracts and documentation, while gwei and wei do the real work.
You cannot do it safely, and no tool can guess for you. The same raw integer means one dollar or a million depending on whether the token uses 6 decimals or 18. Read decimals() from the contract on a block explorer first, then set that number here. This page performs no address lookups of any kind.
No. There is no wallet integration, no address field, no API call, and nothing about your input is transmitted or stored; the arithmetic runs in the page and stays there. Standing advice applies regardless: never type a seed phrase or private key into any website, including this one.
Almost always floating point. A tool that multiplies by 1e18 in JavaScript is working with 53 bits of precision, so 1.1 ETH comes back as 1100000000000000100 wei, a hundred wei of pure invention. Parsing the decimal string into an integer, as this page does, is what keeps the final digits boring.
Explore the growing collection for calculations, documents, writing, and everyday work.