[ On-chain invoicing & payment operations ]
Every invoice.Every payment.One OS.
Create invoices, collect on-chain payments, and keep your business cash flow in view.
Non-custodial. Funds move straight from the payer to your wallet through an open payment router.
Features
Create, collect, reconcile. The three jobs of getting paid, in one place.
- 0.1
Create
draftETH× qty× qtytotalinteger base unitsItemized, exact, signed.
Invoices with quantities, unit prices, discounts and tax, denominated in the payment asset and computed in integer base units. Issue with one wallet signature; the terms are frozen from then on.
- 0.2
Collect
networkRobinhood ChainassetsETH, USDGallowanceexactly the total1 · Approve2 · PayAny EVM wallet, supported assets.
Customers pay in ETH, USDG on Robinhood Chain. The router forwards the exact amount to your wallet in the same transaction; FerchOS never holds funds.
- 0.3
Reconcile
InvoicePaidevent from the routerinvoice · recipient · asset · amountexact matchconfirmed after40 blocksreceipt PDFRobinhood Chain ExplorerVerified before it says paid.
Every payment is matched to the router event on chain: right invoice, recipient, asset and exact amount, then 40 blocks of confirmation. Receipts link to invoice records and feed the dashboard and the CSV export.
Workflow
Five steps. From draft to verified receipt, without guessing.
Line items in, signed terms out.
Quantities, unit prices, discount and tax are computed in integer base units of the payment asset. Save a draft; issue it with one wallet signature that freezes the terms.
- No floating point anywhere near an amount
- Draft stays editable, issued terms do not
- Recipient wallet frozen per invoice
- Create invoice
- Share payment link
- Customer pays
- Verify transaction
- Download receipt
Illustrative workflow · statuses are examples
Why FerchOS
Fewer assumptions. More records you can stand behind.
Non-custodial by construction
The router has no owner, no fee switch and no balance. Funds move from the payer to your wallet in the same transaction.
Verified before "Paid"
The backend reads the receipt and the router event itself. A client can report a hash; it can never mark anything paid.
Per-asset reporting
Collected, outstanding and overdue totals stay in their own asset. ETH and stablecoins are never added into one number.
Private by design
The chain sees an opaque invoice id and the terms. Names, descriptions and notes stay in FerchOS; payment links show only what a payer needs.
Exact-amount approvals
ERC-20 payments request an allowance for exactly the invoice total, as a separate step the payer can see.
Receipts and CSV
A receipt PDF for every verified payment and a CSV of exactly the records the dashboard shows.
Cash flow
Verified collections and outstanding balances, by asset.
The dashboard reports what FerchOS has verified: invoice collections confirmed on chain, outstanding invoice totals and overdue balances, grouped by asset. It does not see every transaction of your wallet and does not try to; it is a view of your invoice activity, not an accounting system.
- · Totals per asset (ETH, USDG), never a combined "value"
- · Confirming payments stay apart from confirmed ones
- · CSV export of the same records the dashboard uses
- · Overdue is derived from the due date and the unpaid state, nothing else
FAQ
Before you issue. Plain answers.
Which networks and assets are supported?
FerchOS is built for Robinhood Chain (chain id 4663) with the native ETH and the USDG stablecoin listed in the network’s official documentation, plus its test network. Each deployment targets one network and shows it in the header; this one serves Robinhood Chain. A local development chain with a clearly labelled test token exists for development only. Only assets with standard transfer behaviour are accepted: fee-on-transfer and rebasing tokens are refused by the router.
What are the fees?
FerchOS charges no platform fee in this version. The payer pays the network’s gas for the payment transaction (and for a one-time token approval when paying in an ERC-20). Gas on Robinhood Chain is paid in ETH; the payment page shows an estimate before the wallet is asked.
When is a payment confirmed?
A payment is recorded only after FerchOS has read the transaction receipt and the router’s InvoicePaid event from the chain itself and matched invoice id, recipient, asset and exact amount. It shows “Confirming” until 40 blocks have passed, then “Paid”. If the network provider is unavailable, the page says “Verification delayed” and FerchOS keeps retrying.
Who holds the funds?
Nobody but you. The payment router is non-custodial: it forwards the exact amount to the recipient wallet named in the merchant-signed terms within the same transaction. It has no owner, no fee switch and cannot be upgraded. Your wallet keys never leave your wallet; FerchOS only ever asks for signatures.
What does the chain see about my invoice?
An opaque 32-byte invoice id, the recipient, the asset, the amount and an expiry. Customer names, references, item descriptions and private notes stay in the FerchOS database. Payment links carry a random high-entropy token and expose only what a payer needs.
What happens when a payment fails?
If the wallet rejects the request or the transaction is never sent, nothing moves and the page says so. If a transaction reverts on chain (for example the invoice was already paid), the router refuses it before any funds move and the attempt is marked failed. A transaction that reaches the chain but does not pay this invoice is never counted. You can always trigger “Recheck transaction”; the answer always comes from the chain, not from the page.
How long does a payment link stay valid?
The signed terms stay payable until 7 days after the due date (end of day, UTC). After that the invoice must be cancelled and re-issued. Cancelling stops the page from handing out the terms; the merchant can also revoke them on chain from the invoice page.
Get started
Bring your payments into order.
Create a draft in a minute. Issue it with a signature. Watch it settle.
Create your first invoice