Technology
The pieces EngiPay is built from, and why each one was chosen.
Base, an Ethereum layer 2
Transfers settle in seconds and cost a fraction of a cent, which is what makes small everyday payments sensible. USDC and ETH live here.
The Bitcoin network
Bitcoin support means real Bitcoin, not a wrapped token standing in for it. That needs its own wallet handling, fee estimation and confirmation rules.
Standard payment codes
Our codes follow EIP-681 on Base and BIP-21 on Bitcoin, the formats other wallets already read. EngiPay adds a note and a reference on top, without breaking that compatibility.
Any wallet you already use
Browser wallets are discovered automatically through EIP-6963, so there is no hardcoded list to fall behind. Mobile wallets connect over WalletConnect.
Rust where the money is
Keys, signing and transaction tracking belong in a service written in Rust, separate from the rest of the app. The product API around it is TypeScript, where the integration work is.
Security by separation
Signing keys never touch the app or the product API. Large withdrawals need a second approval, partner callbacks are signature-checked, and balances are reconciled against the chain on a schedule.
Where the build is
The app you can open today connects your wallet, reads your balances on Base, sends ETH and USDC, and reads and writes payment codes. That part is real and runs without any server of ours.
Naira conversion, token swaps, Bitcoin sending and transaction history need services that are still being built. Those screens exist, and each one says plainly which service it is waiting for rather than showing numbers that are not real.