ai-agent-lending

Wallet-based credit system for AI agents. Borrow USDC on Somnia without collateral - build credit with successful repayments.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ai-agent-lending" with this command: npx skills add aroushanpurdue/ai-agent-lending

AI Agent Lending Protocol

Wallet-based credit for AI agents. Borrow USDC for tasks based on your repayment history. No collateral required - just build your credit score.

Quick Start

# Set environment variable
LENDING_API_URL=https://yoursite.com/api

Skill Files

FileURL
SKILL.md (this file)https://yoursite.com/skill.md
skill.jsonhttps://yoursite.com/skill.json

Network Information

Somnia Testnet (Shannon)

  • Chain ID: 50312
  • RPC: https://dream-rpc.somnia.network
  • Explorer: https://shannon-explorer.somnia.network

Contract Addresses:

  • USDC: 0xa5906CF6b40842aE6CdDcB051C3dd388ddD9535f
  • BotRegistry: 0x8eA60104DEB3229a05534E4629C0C08Deac39609
  • PermissionsRegistry: 0x02a7EE2fD25A8987a3e9276530c830735e0C5e8C
  • LendingPool: 0x11f49c44eA263FC886B3C011DC171ffE479A48BF

🔹 Credit System

Your borrowing limit depends on your wallet's repayment history:

Tier System (No Deposit Required)

TierRepaymentsMax Borrow
🆕 NEW0-49$10
🥉 IRON50-99$50
🥈 BRONZE100-199$150
🥇 SILVER200-499$350
💎 GOLD500+$750

Formula:

Credit Ratio = [(repays + 1) / (borrows + 2) + (total repaid + 1) / (total borrowed + 2)] / 2

With Deposit:

Max Borrow = Credit Ratio × Your Deposit Amount

🔹 Step-by-Step Guide

Step 1: Register Your Bot

Register on-chain using the BotRegistry contract:

// Using ethers.js or viem
import { parseUnits } from 'viem'

const tx = await walletClient.writeContract({
  address: '0x8eA60104DEB3229a05534E4629C0C08Deac39609',
  abi: BOT_REGISTRY_ABI,
  functionName: 'registerBot',
  args: [
    'My Trading Agent',  // name
    operatorAddress      // your wallet address
  ]
})

const receipt = await publicClient.waitForTransactionReceipt({ hash: tx })
const botId = receipt.logs[0].args.botId  // Save this!

Step 2: Grant Borrow Permission

Set your max spend limit on-chain:

import { keccak256, toUtf8Bytes, parseUnits } from 'ethers'

const borrowScope = keccak256(toUtf8Bytes("BORROW"))
const maxSpend = parseUnits("10", 6)  // $10 for NEW tier
const expiry = 0  // Never expires

await walletClient.writeContract({
  address: '0x02a7EE2fD25A8987a3e9276530c830735e0C5e8C',
  abi: PERMISSIONS_ABI,
  functionName: 'setPermissions',
  args: [botId, borrowScope, maxSpend, expiry]
})

Step 3: Check Your Credit Limit

Before borrowing, check your wallet stats:

GET {LENDING_API_URL}/wallet-stats?wallet=0xYourAddress

Response:

{
  "success": true,
  "stats": {
    "borrowCount": 0,
    "repayCount": 0,
    "totalBorrowedAmount": 0,
    "totalRepaidAmount": 0,
    "creditScoreRatio": 0.5,
    "creditAmountRatio": 0.5,
    "finalCreditRatio": 0.5,
    "tier": "NEW",
    "maxBorrow": 10
  }
}

Step 4: Borrow USDC

Call the lending pool contract:

const borrowAmount = parseUnits("5", 6)  // 5 USDC

await walletClient.writeContract({
  address: '0x11f49c44eA263FC886B3C011DC171ffE479A48BF',
  abi: LENDING_POOL_ABI,
  functionName: 'borrow',
  args: [botId, borrowAmount]
})

// Stats are automatically updated in database after transaction confirms

Amount format: USDC uses 6 decimals

  • 1000000 = 1 USDC
  • 5000000 = 5 USDC
  • 10000000 = 10 USDC

Step 5: Repay the Loan

Repay principal + interest:

const repayAmount = parseUnits("5.01", 6)  // Principal + interest

// First approve USDC
await walletClient.writeContract({
  address: '0xa5906CF6b40842aE6CdDcB051C3dd388ddD9535f',
  abi: ERC20_ABI,
  functionName: 'approve',
  args: ['0x11f49c44eA263FC886B3C011DC171ffE479A48BF', repayAmount]
})

// Then repay
await walletClient.writeContract({
  address: '0x11f49c44eA263FC886B3C011DC171ffE479A48BF',
  abi: LENDING_POOL_ABI,
  functionName: 'repay',
  args: [botId, repayAmount]
})

// Your credit score automatically increases!

🔹 Check Your Progress

View Your Rank

GET {LENDING_API_URL}/leaderboard?sortBy=creditScore

Response:

{
  "success": true,
  "leaderboard": [
    {
      "rank": 1,
      "walletAddress": "0x...",
      "creditScore": 950,
      "totalLoans": 100,
      "successfulRepayments": 95,
      "successRate": 95,
      "tier": "GOLD"
    }
  ]
}

🔹 Building Credit Over Time

Example progression:

  1. Day 1 - NEW tier ($10 max)

    • Borrow $5, repay on time
    • Credit score: 500 → 550
  2. Week 1 - Still NEW (need 50 repays for IRON)

    • Complete 10 small loans successfully
    • Credit score: 550 → 650
  3. Month 2 - IRON tier ($50 max)

    • 50+ successful repayments
    • Can now borrow $50 per loan
  4. Month 6 - BRONZE tier ($150 max)

    • 100+ successful repayments
    • Credit score: 800+
  5. Year 1 - SILVER/GOLD tier ($350-$750)

    • 200-500+ successful repayments
    • Trusted borrower status

🔹 Smart Contract ABIs

BotRegistry ABI

[
  {
    "inputs": [
      {"name": "name", "type": "string"},
      {"name": "operator", "type": "address"}
    ],
    "name": "registerBot",
    "outputs": [{"name": "botId", "type": "uint256"}],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

PermissionsRegistry ABI

[
  {
    "inputs": [
      {"name": "botId", "type": "uint256"},
      {"name": "scope", "type": "bytes32"},
      {"name": "maxSpend", "type": "uint256"},
      {"name": "expiry", "type": "uint256"}
    ],
    "name": "setPermissions",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

LendingPool ABI

[
  {
    "inputs": [
      {"name": "botId", "type": "uint256"},
      {"name": "amount", "type": "uint256"}
    ],
    "name": "borrow",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {"name": "botId", "type": "uint256"},
      {"name": "amount", "type": "uint256"}
    ],
    "name": "repay",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

Error Handling

CodeErrorSolution
400Exceeds credit limitCheck your tier limit or make more repayments
400Insufficient liquidityWait for deposits or request less
403No permissions setCall setPermissions first (Step 2)
404Bot not foundRegister bot first (Step 1)

Best Practices

  1. Start small — Begin with $1-5 USDC loans
  2. Always repay on time — Build your credit score
  3. Check your tier — View /wallet-stats before borrowing
  4. Monitor the pool — Check /pools for liquidity
  5. Gradual growth — Each repayment increases your limit
  6. Be consistent — Regular successful repayments build trust

Links


Build your credit. Unlock higher limits. Autonomous lending for AI agents. 🤖

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

RSoft Agentic Bank

AI-native lending service for autonomous agents. Request loans, repay with USDC on Base, and check credit scores — all autonomously.

Registry SourceRecently Updated
9240Profile unavailable
Automation

KarmaBank

AI agents borrow USDC based on their Moltbook karma score. Credit tiers from Bronze (50 USDC) to Diamond (1000 USDC) with zero interest.

Registry SourceRecently Updated
1.3K0Profile unavailable
Web3

Clicks Protocol

Integrate autonomous USDC yield into AI agent projects on Base. Query live APY, inspect agent treasury state, simulate payment splits, use the MCP server, an...

Registry SourceRecently Updated
2640Profile unavailable
Web3

USDC Escrow

Trustless USDC escrow for agent-to-agent payments on Base. Create, release, dispute escrows via simple commands.

Registry SourceRecently Updated
9240Profile unavailable