Designed so there is little to steal.
The safest money is money nobody else can move. Vesta's design starts there.
Non-custodial settlement
A payment is a single blockchain transaction that moves USDC from the customer's wallet directly to the merchant's wallet and the Vesta fee wallet. The Vesta contract instructs the split but never holds a balance — before and after every payment, its USDC balance is zero. There is no “withdraw” because there is nothing to withdraw.
No keys on the server
Vesta's backend only reads the blockchain. It holds no private keys and cannot sign transactions. Customers sign in their own wallet; Vesta never asks for seed phrases or private keys.
A small, fixed contract
The payment contract is about sixty lines of code. The USDC address, fee percentage and fee wallet are fixed when it is deployed; there is no owner, no upgrade mechanism and no pause switch. A payment either completes entirely or reverts entirely — there is no state where the fee was taken but the merchant was not paid.
Current contract on Base Sepolia: 0x4EAfDBcd549b40e4C8e9F0BA4420013e5CF097Ff
Every payment is verified twice
Before an invoice is marked paid, Vesta checks the on-chain event against the invoice record — right contract, right merchant wallet, right amount, right fee split — and waits for several block confirmations. A payment that doesn't match is flagged for review rather than accepted.
Duplicate protection
Each invoice has a random reference; the contract refuses a second payment for the same reference, and the database refuses a second record for the same transaction.
Merchant sign-in
Merchants sign in with a one-time email link — no passwords to leak. API keys are stored only as one-way hashes.
Responsible disclosure
Found something? Email tbracko@gmail.com. We will respond quickly and credit you if you wish.