🚀 Quick Start
Get started with three simple steps. No backend integration required!
Step 1: Include the Script
Add this line to your website's HTML, just before the closing </body> tag:
<script src="https://app.instantescrow.nz/conduit-checkout.js"></script>Step 2: Initialize with Your Wallet
Configure the checkout with your merchant wallet address:
<script>
ConduitCheckout.init({
// Your wallet address to receive payments
sellerAddress: '0xYourWalletAddressHere',
// Base URL of checkout page
baseUrl: 'https://app.instantescrow.nz',
// Default token: 'USDC' or 'USDT' (default: 'USDC')
tokenSymbol: 'USDC',
// Days until auto-release to seller (default: 7)
expiryDays: 7,
// Display mode: 'popup' or 'redirect'
mode: 'popup',
// Success callback
onSuccess: function(data) {
console.log('Payment completed!', data);
alert('Thank you! Payment received: ' + data.transactionHash);
},
// Error callback
onError: function(error) {
console.error('Payment failed:', error);
alert('Payment failed: ' + error);
},
// Cancel callback
onCancel: function() {
console.log('Payment cancelled');
}
});
</script>Step 3: Add Payment Buttons
Create buttons that open the checkout:
<button onclick="ConduitCheckout.open({
amount: '50.00',
description: 'Premium Product'
})">
Pay $50 with USDC
</button>✨ Try It Live
See the integration in action with a working example page:
View Interactive Demo →🎨 Display Modes
Popup Window
Opens in a centered popup. Best for minimal disruption.
mode: 'popup'Full Redirect
Redirects to checkout page. Best for mobile.
mode: 'redirect'💡 Common Examples
Basic Product Payment
<button onclick="ConduitCheckout.open({
amount: '29.99',
description: 'Premium Widget - Blue',
orderId: 'ORDER-12345'
})">
Buy Now - $29.99
</button>Product with Extended Protection
<button onclick="ConduitCheckout.open({
amount: '99.00',
description: 'Professional Service Package',
orderId: 'SERVICE-' + Date.now(),
expiryDays: 30, // 30-day buyer protection
email: 'customer@example.com'
})">
Purchase - $99
</button>Custom Amount (Donations, Tips)
<input type="number" id="amount" placeholder="Enter amount" min="1.001" step="0.01">
<button onclick="
const amount = document.getElementById('amount').value;
ConduitCheckout.open({
amount: amount,
description: 'Support our project',
orderId: 'DONATION-' + Date.now()
});
">
Donate with USDC
</button>Accept USDT Instead of USDC
<button onclick="ConduitCheckout.open({
amount: '500.00',
description: 'Enterprise License',
tokenSymbol: 'USDT', // Use USDT instead of USDC
expiryDays: 14
})">
Pay $500 with USDT
</button>⚙️ Configuration Options
ConduitCheckout.init(options)
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
| sellerAddress | string | Yes | - | Your wallet address to receive payments |
| baseUrl | string | Yes | - | Base URL of checkout page |
| tokenSymbol | string | No | 'USDC' | 'USDC' or 'USDT' |
| expiryDays | number | No | 7 | Days until auto-release to seller |
| mode | string | No | 'popup' | 'popup' or 'redirect' |
| onSuccess | function | No | - | Callback when payment completes |
| onError | function | No | - | Callback when payment fails |
| onCancel | function | No | - | Callback when user cancels |
ConduitCheckout.open(params)
| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | string/number | Yes | Payment amount (e.g., '50.00') |
| description | string | Yes | Payment description (max 160 chars) |
| orderId | string | No | Your internal order/transaction ID |
| string | No | Customer email address | |
| tokenSymbol | string | No | Override default token for this payment |
| expiryDays | number | No | Override default expiry |
| webhookUrl | string | No | Webhook URL for payment verification |
| metadata | object | No | Custom metadata to include |
🔔 Webhook Integration
Receive server-to-server notifications when payments are completed. Perfect for fulfilling orders automatically.
Webhook Payload
{
"transaction_hash": "0x1234...",
"contract_address": "0x5678...",
"contract_id": "abc123",
"order_id": "1234",
"expected_amount": 50.00,
"expected_recipient": "0x9abc...",
"merchant_wallet": "0xdef0..."
}Example Webhook Handler (Node.js)
app.post('/api/payment-webhook', express.json(), async (req, res) => {
const {
transaction_hash,
contract_id,
order_id,
expected_amount
} = req.body;
// Verify payment on blockchain (optional)
// Update your database
// Fulfill order
// Send confirmation email
console.log(`Payment received for order ${order_id}: ${transaction_hash}`);
res.json({ success: true });
});🔒 Features & Security
✓ Buyer Protection
- • Funds held in escrow smart contract
- • Time-delayed release (default 7 days)
- • Dispute mechanism for buyer protection
- • Admin arbitration for disputes
✓ No Gas Fees
- • Platform covers all blockchain fees
- • Users only pay $1 platform fee
- • Minimum payment: $1.001
- • Fee included in payment amount
✓ Client-Side Security
- • Users sign transactions with own wallet
- • No custody of user funds
- • HTTPS required for all integrations
- • Open-source smart contracts
✓ Multi-Token Support
- • USDC (default)
- • USDT (optional)
- • Base network (Ethereum L2)
- • Low transaction costs
❓ Frequently Asked Questions
What tokens are supported?
Currently USDC and USDT on the Base network (Ethereum Layer 2). More tokens coming soon!
What are the fees?
Fixed $1 platform fee per transaction (included in the amount). Minimum payment is $1.001. No gas fees for users - we cover all blockchain costs.
How long until I receive funds?
Funds are automatically released after the expiry period (default 7 days) unless the buyer raises a dispute. You can customize the expiry period per payment.
Can buyers get refunds?
Buyers can raise a dispute within the protection period by emailing the dispute address. Our admin team reviews disputes and can release funds to either party based on the evidence.
Do I need a crypto wallet?
Yes, you need a wallet address to receive payments. We recommend MetaMask, Coinbase Wallet, or any Web3-compatible wallet. Buyers can use email + social login (we create embedded wallets for them).
Is this secure?
Yes! Payments are secured by immutable smart contracts on the Base blockchain. Users sign transactions with their own wallets (we never custody funds). All transactions are auditable on-chain. HTTPS is required for all integrations.
What about chargebacks?
Cryptocurrency transactions are irreversible - there are no chargebacks like with credit cards. However, our escrow system provides buyer protection through the dispute mechanism during the protection period.
Ready to Get Started?
Try the interactive demo or integrate directly into your site