pull down to refresh

I don't think it's possible to lend or borrow USD without counterparty risk
USD is not natively programmable, you have to let a middleman hold it for you, give you a credit for it, and then let you transfer that credit so that now they "owe" the money to someone else
The middleman might be Paypal, Visa, Chase, or even Tethercorp, but no matter who your middleman is, that middleman is your counterparty risk. Nothing stops them from ignoring your requests and keeping your money
If you leave out USD, it is possible to lend someone some bitcoin on the condition that they put up a larger amount of bitcoin as collateral, and you can further make it so that they only get their collateral back if they pay you back the principle of the loan plus interest
^ all of that is possible today with regular bitcoin script. You can use a timelock instead of a middleman to hold the money til the loan comes to term, and you can use presigned transactions to enable both payment paths (the first spend path: before the timelock expires, the borrower may recover his collateral only if he sends the principle + interest to the lender. Second spend path: after the timelock expires, the lender may take the collateral unilaterally)
That probably seems pointless since you don't need a loan for some bitcoin if you already have an amount of bitcoin that is larger than the amount you're borrowing
But it might be tax advantageous to borrow some "fresh" bitcoins and immediately sell them for USD instead of selling bitcoins you purchased years ago when their value was low, so there might be a market for a product like that, weird as it may seem