⚗️ Chemical Equation Balancer
Enter an unbalanced equation and get exact, smallest-integer coefficients — computed from the reaction’s linear system, not guessed.
Balanced equation
2KMnO4+16HCl→2KCl+2MnCl2+8H2O+5Cl2
2
KMnO4
16
HCl
2
KCl
2
MnCl2
8
H2O
5
Cl2
Exact integer coefficients from the reaction’s null-space (BigInt rational Gaussian elimination — no floating point). 🔒 Computed in your browser.
How the chemical equation balancer works
Each species is parsed into an element-count vector; these form a stoichiometric matrix (products negated). The tool solves the homogeneous system A·x = 0 by exact rational Gaussian elimination (BigInt fractions — no floating point) for the null-space vector, then scales it to the smallest positive integers via the LCM of denominators divided by the GCD. It detects reactions that cannot balance or are under-determined.
This is the flagship exact tool: balancing is an integer linear-algebra problem with one right answer, and it is precisely what chatbots get wrong — mis-applying coefficients on redox reactions like KMnO₄ + HCl. Here the coefficients are byte-exact.
Frequently asked questions
How do I balance a chemical equation?
Write it as reactants → products (e.g. “H2 + O2 -> H2O”). The tool converts each species to an element-count vector, solves the resulting linear system exactly, and returns the smallest whole-number coefficients — here 2 H₂ + O₂ → 2 H₂O.
Can it balance redox equations?
Yes. Complex reactions like KMnO₄ + HCl → KCl + MnCl₂ + H₂O + Cl₂ balance to 2, 16, 2, 2, 8, 5 — the exact null-space solution, which chatbots frequently get wrong.
How do I type an equation?
Use element symbols and subscripts as numbers (H2O, Fe2O3), separate species with +, and use -> or = between the two sides. Parentheses and hydrates are supported.
What if the equation can’t be balanced?
The tool tells you: either no solution exists (the elements don’t reconcile) or the system is under-determined (more than one independent balance), which usually means a species is missing or mistyped.
Why is this more reliable than a chatbot?
Balancing is exact integer linear algebra with a unique smallest-integer answer. This computes the null-space over exact fractions and scales to integers; a language model pattern-matches and regularly produces coefficients that don’t actually balance.
Are the coefficients always the smallest whole numbers?
Yes — the solution is divided by the greatest common divisor, so you get the simplest integer ratio.
Related chemistry tools
From the blog
-
How to Balance Chemical Equations: The Algebra Method (Step by Step)
Balancing a chemical equation is exact algebra: one unknown per species, one equation per element, solved for the smallest whole numbers. The step-by-step method, worked examples, and why it's the reliable way to balance redox reactions that chatbots get wrong.
-
Oxidation Numbers: The Rules and How to Assign Them
Oxidation numbers follow a short priority list of rules — group 1 is +1, oxygen is −2, hydrogen is +1 — and the last unknown falls out by making everything sum to the overall charge. The rules in order, worked examples like KMnO₄ → Mn +7, and the exceptions.