Get paid to settle overdue loans
When a loan passes its deadline, someone has to close it out, and that someone earns a reward for doing it. No permission, no sign-up, no whitelist. Any wallet can be a keeper. This page is everything you need to run one.
A bounty, not a chore
Every Bowline loan is overcollateralized and has a fixed repayment deadline. If a borrower misses that deadline plus a 48-hour grace window, the loan becomes settleable by anyone. The protocol pays the settler. Two paths, depending on the collateral:
Memecoin loans → settle for a bounty
Call liquidate(loanId, minUsdgOut). The protocol swaps the collateral on Uniswap v3 behind an oracle floor and hands you a 5% bounty of the collateral. You need only gas — no capital. This covers every listed memecoin.
Stock loans → settle by buyout
Call buyout(loanId). You pay USDG equal to the Chainlink oracle value minus a 3% discount and receive all the collateral outright. Resell the stock tokens via 0x RFQ, 1inch, or hold them. Your 3% is the profit. This needs USDG on hand.
Either way, the USDG you provide (or the swap yields) repays the lending pool first, then fees and penalty, and any surplus returns to the borrower. Lenders are made whole; you keep the reward.
How to run one
- 1. Scan. Read
loanCount(), thengetLoan(id)for each. A loan is settleable whenstatus == Activeandblock.timestamp > dueTimestamp + 48h. - 2. Price it. For stock loans, call
buyoutPrice(loanId)— the exact USDG you pay. For memecoin loans, the bounty is 5% of the collateral amount. - 3. Settle. Fire
liquidateorbuyout. First caller wins, so it pays to be fast and watch the mempool. - 4. Exit. Sell the collateral wherever you like, or hold it. The reward is yours the moment the transaction lands.
| Contract | Address | |
|---|---|---|
| LoanManager | 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E | read/write ↗ |
| USDG (approve for buyouts) | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 | explorer ↗ |
Every contract is source-verified on Blockscout — read the exact settlement logic before you trust it with a single call.
One-liner with cast
# how many loans exist cast call 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E "loanCount()(uint256)" --rpc-url $RPC # inspect a loan (status 1 = Active; check dueTimestamp + 48h) cast call 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E "getLoan(uint256)" <id> --rpc-url $RPC # memecoin: settle for the 5% bounty (gas only) cast send 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E "liquidate(uint256,uint256)" <id> 0 \ --rpc-url $RPC --private-key $KEY # stock: quote then buy the collateral at 3% below oracle cast call 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E "buyoutPrice(uint256)(uint256)" <id> --rpc-url $RPC cast send 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 "approve(address,uint256)" 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E <price> --rpc-url $RPC --private-key $KEY cast send 0x11875Ac731eF49A8AD22287Ad96A386c69BE4b0E "buyout(uint256)" <id> --rpc-url $RPC --private-key $KEY
RPC: https://rpc.mainnet.chain.robinhood.com · Chain ID 4663. Bring your own wallet and, for buyouts, enough USDG to cover the price. That is the whole job.
What you are taking on
A buyout is a bet that you can resell the collateral for more than you paid. The 3% discount and the Chainlink oracle floor are your margin, but a token that gaps down before you exit can erode it — price your resale route before you sign. Memecoin settlements carry the same risk on the protocol's side, not yours, since the swap is atomic. No keeper is ever obligated to act; the reward is the only reason to. That is the point — the protocol stays healthy because settling overdue loans is profitable, not because anyone is on call.
bowline