Crypto Billing That Forgets You
We shipped a rewrite of how crypto payments work on ResetKit. Three changes, and the third one is the one we care most about.
Payments apply themselves
Before, paying with crypto meant sending the money and then pasting a transaction hash back into your dashboard so we could match it up. That second step was always the weak part. People sent the payment, closed the tab, and were left wondering why nothing had happened.
That step is gone. Send the amount we quote you and the plan activates on its own, usually within a couple of minutes of the transaction confirming. Nothing to copy, nothing to paste.
You can still paste a hash if you want to hurry things along, and if we already picked the payment up, you now get a confirmation instead of an error telling you the transaction was already used. You paid. It worked. Saying otherwise was just wrong.
The terms are deliberately generous
Crypto is push only. Nothing can reach into your wallet and take next month's payment the way a card mandate can. So a crypto plan is a prepaid term, not a subscription, and we wrote the rules for it in your favour at every point where there was a choice.
A term runs 31 days, not 30, so a payment made at the end of a month is never quietly short-changed by the calendar.
Renewing early adds time, it does not reset it. Pay again with twelve days left and you get twelve plus thirty-one. Nobody should lose days they already paid for as a penalty for being early.
A lapsed term keeps working for another fourteen days. Not throttled, not degraded, not read only. Identical service. If you are travelling, or waiting on a slow confirmation, or simply busy, that is not an outage you should suffer.
When that finally runs out, nothing is deleted. The account drops to trial limits and everything stays exactly where it is. Pay whenever you get to it and you are back instantly.
That is forty-five days from payment before anything changes at all. No proration, no partial refund arithmetic, no late fee. Those mechanisms are what make software billing feel adversarial, and none of them are necessary to run this correctly.
We will email you twice about a renewal. Once about a week out, once when the term ends. Then we stop, permanently, even while the account sits in its grace window. A third email has never once been the one that worked, and a service that keeps nagging you about money just teaches you to filter it.
We no longer keep anything that points at your wallet
This is the part worth reading properly, because it cuts against something people assume about crypto.
A public ledger is the reason crypto payments are hard to tamper with. It is also a privacy problem, and a permanent one. If a service stores your transaction identifier next to your account, that record is a durable link between who you are and a wallet, and from that wallet to its full balance and history. Forever. Anyone who read that database even once could work backwards from a customer to their holdings.
A conventional payment processor at least keeps its ledger private. With crypto, the ledger is the whole world's.
We were storing that link. We are not any more.
What we actually needed the transaction identifier for was exactly one thing: making sure the same payment can never be credited twice. That requires a value which is unique and stable. It does not require a value we can read. So we now store a keyed, one way reference derived from the transaction and discard the original. Double crediting is still impossible. The link back to a wallet no longer exists on our side.
The identifier was not the only trace, either. An exact on chain amount, or the receiving address, or the timestamp, each narrows a public ledger down to a single transaction on its own. So we stopped storing those too. What remains against a payment is the plan price in dollars, which is printed on our pricing page and identifies nobody.
Records written before this change were converted and their original values removed. Changing what we write going forward would have done nothing for anyone who had already paid.
And on the card side
Card payments now tell you the moment one fails, rather than at some later point when something stops working. Cards decline for boring reasons far more often than interesting ones, an expiry date rolling over or a bank fraud hold, and those take a minute to fix once you know about them. The message says plainly that your service is still running and nothing has been lost, because at that point both of those things are true.
Why any of this
The honest reason is that billing is where most software quietly turns hostile. Not through anything dramatic, just accumulated small decisions that each favour the vendor: the early renewal that erases your remaining days, the grace period that is secretly degraded, the fourth reminder email, the record kept forever because deleting it was more work than keeping it.
We would rather not have any of those. We charge what the pricing page says, we give you room when something slips, and we hold on to as little about you as the job actually requires.
Any of this not behaving the way it reads here, tell us at support@resetkit.dev.