← Blog

engineering

Money is a bigint, and the column name says so

Every currency bug we have seen started as a reasonable-looking float.

28 July 2026 · By Ada Okafor, Engineering · 4 mins

Token pricing runs to six decimal places. A thousand calls at $0.000015 is a number a float will quietly get wrong, and it will get it wrong in a direction nobody notices until a reconciliation fails.

We store micro-dollars as `bigint`, and every column ends `_micros` so a reader cannot mistake the unit. It is not clever. It is the kind of decision that is free on day one and touches every table on day four hundred.

The other half is the invariant: `available = balance − hold`, computed atomically, never assembled in application code. A subtraction done in a template is a second place for it to be wrong.

Subscribe to our newsletter

Enter your contact details to get the latest news and trends to help boost your product.

Seams collects and processes your personal data to deliver the newsletter you requested. Learn more about how we manage your data and your rights.

Ready? Let's go.

Whether you want to examine the specific needs of your product, or go over the benefits of Seams, we are here for you.