- Customer pays
- 0.2 WETH
- Value
- $490.00
- Pay-in address
- 0x9Edb…F8E1
- Quote expires
- in 5:00
Kite
The open-source crypto payment processor you run yourself. Payment links, checkout, webhooks and on-chain settlement, on your server, paid to your wallet.
No middleman in the middle
Customers pay
your server. Each payment settles through its own contract
into a wallet you hold
.
No hosted Kite.
-
One payment, one contract
Transfer #f2f7c01aAwaiting deposit First the address exists, before any contract does.
-
Transfer #f2f7c01aDeposit received - Customer pays
- 0.2 WETH
- Received
- 0.2 WETH
- From
- 0x296c…a626
- Arrived
- 4:50 AM
Then the customer pays it, from a wallet or by sending.
-
Transfer #f2f7c01aProcessing - Swap
- WETH → USDC
- Route
- Uniswap V3
- Priced at
- 10 min TWAP
- Slippage cap
- 1%
Then one transaction deploys, swaps and pays the fees.
-
Transfer #f2f7c01aSettled - Value
- $490.00
- Platform fee, 1%
- 4.90 USDC
- You receive
- 485.10 USDC
- Webhook
- Delivered
Last, your webhook hears Settled, and you ship the order.
Everything a checkout owes you
Any token in, yours out
Swapped through Uniswap V3, priced from a 10-minute time-weighted average.
Agents pay too
Every link is an x402 resource. Agents sign and pay without gas.
Signed webhooks
HMAC-SHA256 on every delivery, retried until it lands.
Fees with conditions
Server fees for the apps you host, app fees for splits, with minimums and caps.
Checkout over your page
@kite-01/js, no dependencies.
Every request signed
Scoped API keys, single-use nonces.
Many apps, one server
Each merchant sees only its own data.
Refunds nobody blocks
After expiry, anyone can trigger one.
The page they pay on
At /pay/<id> customers connect a wallet, gasless with x402 where the token allows it, or scan a QR code and send. Quotes hold for five minutes, and anything overpaid goes back.
Open rails, your own factory
Your KiteFactory
Deployed by you, operated by your server
Any EVM chain
Wherever a Uniswap V3 router runs
Uniswap V3
Swaps and TWAP pricing
x402
Gasless, agent-ready payments
Chainlink
Price feeds for EUR, GBP and more
QuickNode
Deposit notifier
Alchemy
Deposits and sponsored gas
OpenAPI 3.1
Interactive reference at /openapi
PostgreSQL
Every event and delivery kept
MIT
Every repository, every line
Six repositories, one product
-
server
The whole product: the API, the dashboard you run it from and the checkout customers pay on. Ships as one Docker image that migrates itself.
-
contracts
KiteFactory predicts each payment's address, then deploys a clone there that swaps, pays fees, settles or refunds in one transaction.
-
@kite-01/sdk
A typed client generated from the server's OpenAPI spec. Signs every request with Web Crypto and verifies webhooks.
-
@kite-01/js
openCheckout() opens a payment link over your page and tells you how it ended, with onSuccess and onClose.
-
docs
Guides for running a server, taking payments, authentication and the packages. Every server also serves its own reference.
-
examples
Monkai, a pay-to-rank board where money is the only ranking signal. A bid only counts once Kite reports it settled.
Three calls to take a payment
Your backend creates a link tagged with your order id. Your page opens it. Kite tells your backend when it settles, signed, so you fulfil on Settled and nothing else.
See the integration guideconst { data: link } = await kite.paymentLinks.create({
body: {
title: "Pro plan",
currency: "USD",
amount: "49",
usage: "OneTime",
reference: order.id,
},
});
const checkout = openCheckout({
baseUrl: "https://pay.example.com",
paymentLinkId,
onSuccess: ({ transferId }) => showThankYou(),
});
const event = await verifyWebhook({ body, headers, secret });
if (event.current.status === "Settled") fulfil(order);
What people ask first
HostingIs there a hosted Kite I can sign up for?
No. Kite is a single server you run, with Postgres beside it. Build the Docker image, set five environment variables, and the API, dashboard and checkout all come up on one port. Your customers pay your server.
CustodyWho holds the money?
You do. Each payment settles from its own contract to the settlement address you set for the chain. The operator wallet only signs settlement and refund transactions, and a payment contract can't be driven by anyone but the factory.
TokensWhich tokens can customers pay with?
Native ETH and any ERC-20 you list, plus any token a customer pastes in, as long as it has a Uniswap V3 pool with your settlement token. Everything is swapped into the one token you settle in.
MistakesWhat if a customer pays too little, or too much?
Too little waits until the quote expires, then goes back. Too much settles and the excess is returned. A different token than quoted is sent back to the refund address automatically, and after expiry anyone can call refund.
ChainsWhich networks does it run on?
Any EVM network with a Uniswap V3 router. You deploy your own KiteFactory there with Hardhat Ignition, with your server's operator wallet as its operator, then add the chain and its factory address in the dashboard and it appears at checkout.
TestingCan I try it without real funds?
Run a second server with KITE_IS_TESTNET=true and its own database. It only offers testnets, so test tokens can never pay a real payment link.
Fly your own
Clone the server, point it at Postgres, add a chain. Your first payment link is ten minutes away, and every dollar of it goes where you say.