One-click payment button system for Base network.
BaseTap enables instant USDC payments through upgradeable smart contracts on Base.
- One-click payment execution
- Cooldown mechanisms
- Daily spending limits
- Single-use payment options
- Fully upgradeable architecture
forge install
forge build
forge test- TapRegistry: Upgradeable payment registry
- TapExecutor: Batch execution engine
- Reentrancy protection
- UUPS upgradeable pattern
See deployment scripts for examples
PRs welcome!
forge test
Use TapFactory for one-transaction deployment:
TapFactory factory = new TapFactory();
// Deploy registry
address registryProxy = factory.deployRegistry(owner);
// Deploy executor
address executorProxy = factory.deployExecutor(owner, registryProxy);- Go to Actions tab in your repository
- Select Deploy and Save Addresses workflow
- Click Run workflow
- Choose network:
base-sepoliaorbase - Click Run workflow button
The workflow will:
- Deploy all contracts
- Verify on Basescan
- Save addresses to
deployments/{network}.json - Commit addresses back to repo
Add these in Settings → Secrets and variables → Actions:
PRIVATE_KEY=0x... # Your deployer private key
BASE_RPC_URL=https://... # Base mainnet RPC
BASE_SEPOLIA_RPC_URL=https://sepolia.base.org
BASESCAN_API_KEY=... # Get from basescan.org
export NETWORK=base-sepolia
forge script script/DeployAndSave.s.sol:DeployAndSave \
--rpc-url $BASE_SEPOLIA_RPC_URL \
--broadcast \
--verifycat deployments/base-sepolia.jsonOr use the script:
forge script script/ReadDeployment.s.sol:ReadDeployment base-sepolia