Skip to main content
Bring your own (BYO) wallet lets you receive USDC payments directly in a wallet you already control. Instead of Kibble provisioning a deposit address, you supply your own USDC wallet address on Base and Kibble monitors it for incoming transfers. Your funds land directly in your wallet — Kibble only handles detection and status tracking.

How to use your own wallet

Set wallet_type to "byo" and include your wallet address in the wallet_address field when creating a payment link or invoice. The address must be a valid EVM checksummed address on the Base network.
curl -X POST https://pay.kibble.sh/api/links \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "Acme SaaS",
    "email": "you@example.com",
    "expected_amount": "100.00",
    "wallet_type": "byo",
    "wallet_address": "0xYourWalletAddressHere"
  }'
The wallet_address field is required when wallet_type is "byo". Omitting it or passing an invalid address will return a validation error.

Requirements

  • wallet_type must be set to "byo"
  • wallet_address must be a valid EVM checksummed address (e.g. 0xAbCd...1234)
  • Your wallet must be on the Base network (chain ID 8453)
  • Your wallet must be able to receive USDC (contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)
Only USDC on the Base network is accepted. Other tokens or other networks will not be detected.
If you’re using Coinbase, MetaMask, or any other self-custody wallet, make sure it supports the Base network and USDC. In most wallets you can add Base as a custom network using chain ID 8453 and then add the USDC token contract manually.

What Kibble does with your address

Kibble does not custody your funds. When you provide a BYO wallet address, Kibble uses it as the deposit address shown to your payer on the checkout page or invoice. Once your payer sends USDC, Kibble detects the on-chain transfer and updates the payment status. The funds go directly to your wallet.