Install
openclaw skills install @altoninelli/selfpaid-paymentsZero-cost payment automation on Base (Chain ID 8453) with 100% principal recovery via USDC yield farming (Aave V3 & Morpho). Machine-to-Machine (M2M) API and tool for AI agents and smart accounts. Built-in 0.5% developer fee fully reimbursed by yield.
openclaw skills install @altoninelli/selfpaid-paymentsAutonomous Zero-Net-Cost Payments on Base Mainnet
Send USDC to any recipient while recovering 100% of the principal + developer fee automatically through on-chain collateral yield (Aave V3 & Morpho).
Designed for autonomous AI agents, smart accounts (ERC-4337 / EIP-5792), and automated workflows.
To eliminate risks of unvalidated remote calldata forwarding (OpenClaw Rule T09), any agent or client using this skill MUST decode and validate the payload locally before invoking the wallet signer. The included validate.js module performs these automated checks:
chainId === 8453 (Base Mainnet). Reject any mismatch.0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.0xA238Dd80C259a72e81d7e4664a9801593F98d1c5) or Morpho Vault.transfer(address,uint256) selector (0xa9059cbb).approve(address,uint256) selector (0x095ea7b3).supply(address,uint256,address,uint16) selector (0x617ba037) or Morpho deposit(uint256,address) selector (0x6e553f65).DEVELOPER_FEE → PAYMENT → APPROVE_POOL → SUPPLY_YIELD. Reject duplicated or injected calls.value === "0x0". Reject any call attempting native ETH transfers.0x785cf69ced4e20a7e975a3391d51321b1528fdfe.uint256.max) approvals are rejected.onBehalfOf === sender for Aave, receiver === sender for Morpho), preventing remote position redirection.0x785cf69ced4e20a7e975a3391d51321b1528fdfeDEVELOPER_FEE).When an agent needs to pay a recipient (e.g. paying for an API, human service, or agent-to-agent task):
GET /api/v1/payment/rates to see real-time APYs across Aave V3 and Morpho on Base.POST request to https://selfpaid.cryptofolio.it/api/v1/payment/build with payment parameters.DEVELOPER_FEE): Transfer 0.5% fee to developer wallet (0x785c...fdfe).PAYMENT): Transfer payment amount to recipient wallet.APPROVE_POOL): Authorize USDC collateral deposit to the selected yield protocol.SUPPLY_YIELD): Deposit collateral into Aave V3 / Morpho on behalf of the payer (sender).validatePaymentBatch(response, { amount, recipient, sender }) using validate.js to decode and enforce all allowlists.batchCalls.No API key, registration, or local setup is required. The API is completely public and frictionless for agents.
Get current APYs and see which protocol is currently offering higher yields:
curl -s https://selfpaid.cryptofolio.it/api/v1/payment/rates
Response:
{
"aave": 0.0422,
"morpho": 0.0389,
"best": "aave",
"bestApy": 0.0422,
"lastUpdated": "2026-10-09T08:27:49.700Z"
}
Check collateral requirements and estimated recovery time:
curl -s "https://selfpaid.cryptofolio.it/api/v1/payment/quote?amount=25"
Response:
{
"amountToPay": "25",
"collateralTotal": "540",
"feeAmount": "0.125",
"yieldDepositAmount": "515",
"totalRequiredAmount": "540.125",
"selectedProtocol": "aave",
"estimatedAPY": 0.0422,
"estimatedRecoveryDays": 426
}
Generate ready-to-sign EVM transaction calldata:
curl -s -X POST https://selfpaid.cryptofolio.it/api/v1/payment/build \
-H "Content-Type: application/json" \
-d '{
"amount": 25,
"recipient": "0x2222222222222222222222222222222222222222",
"sender": "0x1111111111111111111111111111111111111111",
"protocol": "auto"
}'
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | Number | Yes | Amount of USDC to pay to the recipient (e.g. 25). |
recipient | String | Yes | EVM address receiving the payment (0x...). |
sender | String | Yes | EVM address of payer / agent executing transactions (0x...). |
protocol | String | No | 'auto' (default, picks best APY), 'aave', or 'morpho'. |
collateral | Number | No | Collateral multiplier (default 20 = 20x). |
buffer | Number | No | Safety buffer percentage (default 8 = 8%). |
The endpoint returns:
summary: Full financial summary (fees, deposits, estimated days to 100% recovery).transactions: Array of 4 EVM transaction objects { step, name, description, to, data, value }.batchCalls: Array of calls formatted for EIP-5792 (wallet_sendCalls) for atomic 1-click execution.validate.js before signing.| Multiplier | Collateral Total | Yield Deposit | Est. Recovery Time |
|---|---|---|---|
| 5× | 5.40 USDC / unit | 4.40 USDC | ~5.3 years |
| 10× | 10.80 USDC / unit | 9.80 USDC | ~2.4 years |
| 20× (Recommended) | 21.60 USDC / unit | 20.60 USDC | ~1.1 years |
Higher collateral multiplier generates faster daily yield, recovering the spent principal sooner.
An OpenClaw agent invokes this skill using a safe, validated execution pipeline:
User: "Pay 10 USDC to 0xAlice... with full capital recovery."
Agent:
1. Queries GET https://selfpaid.cryptofolio.it/api/v1/payment/quote?amount=10
2. Confirms recovery timeline (~426 days at 4.2% APY, 0.1 USDC developer fee).
3. Calls POST https://selfpaid.cryptofolio.it/api/v1/payment/build with recipient and sender wallet.
4. Executes Local Validation via validate.js:
- Verifies Chain ID is 8453 (Base Mainnet)
- Verifies target contracts are allowlisted (USDC and Aave V3)
- Verifies zero native ETH value across all calls
- Verifies recipient is 0xAlice and fee is 0.1 USDC to developer
- Verifies approval is bounded strictly to the collateral deposit
5. Presents verified transaction summary to user/policy:
"Payment of 10 USDC verified. Collateral deposit: 206 USDC into Aave V3. Est. recovery: 426 days."
6. Passes verified batchCalls to local Web3 signer for execution.
@altoninelli