a p2p borrowing and lending protocol
there should be a transparent system for borrowers and lenders to find each other and make deals. the bitcoin ecosystem currently wants this because many skilled lightning node runners can earn good yield, but lack access to capital. but the protocol should extend to any type of bilateral borrowing/lending arrangement in any currency.
messages are published using the nostr protocol. nostr relays gather the messages and present them to users. anybody can be a nostr relay and it is expected that several different websites emerge, each run by a different relay, each with a different style. for example some relays may be free and broadcast every request, whereas others may be more selective and only broadcast requests from borrowers who pay a fee.
each message should have one of the following types: 61 (OPEN_REQUEST
), 62 (COMMENT
) or CANCEL_REQUEST
(kind 5 deletion event on the OPEN_REQUEST
event) (more to be added!).
- potential borrower publishes an
OPEN_REQUEST
stating their terms (this can be public or privately sent to select individuals) - other users can publish an
COMMENT
message rating the quality of other users or the quality of their particular debt offerings - potential lender contacts borrower (can be through nostr-native private encrypted messaging or email or telegram or anything)
- potential borrower publishes a
CANCEL_REQUEST
to take down their listing - everything else is coordinated privately between lender and borrow, and they can publish public positive or negative
COMMENT
messages about the other one at any time. it is expected that standards will emerge where the borrower and lender request signatures from each other attesting to the terms of the deal.
a potential borrower will submit a message of type OPEN_REQUEST
that will look something like this:
{
"kind": 61,
"pubkey": "a10e7cb8f5aac7e6a50864af1b2c2cddcb3bbeb939b104d22b68f711c34f9f8f",
"created_at": 1665704942,
"tags": [],
"content": "{\"comment\":\"Requesting 1 on-chain BTC, will pay back 1.004611 BTC in 3 weeks (5% APY)\"}",
"signature": "d7e4ca6dd2903ff8f66ec533533258f54d350a0140468cae33fe6f48bca2b727..."
}
or this:
{
"kind": 61,
"pubkey": "4030592727c7b1806f40bdce9ddefe12741e7a3efb6c58f65707bee4bcc751c0",
"created_at": 1665704952,
"tags": [],
"content": "{\"comment\":\"Requesting $100 paid via Cash App, will pay back $105 in 2 days.\",\"contact\":{\"telegram\":\"gambling_addict_69\"}}",
"signature": "8ce21deff1554b86a901454286b1ec15c98785edbf99e817584abc30422d4293"
}
comments are the backbone of the trust model, as everything is based on reputations. it is expected that publicly known people and/or trusted companies will become credit rating agencies that rate the quality of borrowers.
a comment may look something like this:
{
"type": 62,
"pubkey": "48a0d69fbfeb990c3eba98dbd567203126850cda38a693c6ba5cf44fd971176c",
"tags": [
["p", "a10e7cb8f5aac7e6a50864af1b2c2cddcb3bbeb939b104d22b68f711c34f9f8f"]
],
"content": "{\"comment\":\"I had a good experience lending to this person. Their recent debt offering of 1 BTC for 5% APY in 3 weeks is very low risk\",\"rating\":1}",
"created_at": 1665705232,
"signature": "18f7218ca412493e4f78f9248e5467141ae243c327a900aeea615ee7b0acb748..."
}
or this:
{
"type": 62,
"pubkey": "48a0d69fbfeb990c3eba98dbd567203126850cda38a693c6ba5cf44fd971176c",
"tags": [
["p", "4030592727c7b1806f40bdce9ddefe12741e7a3efb6c58f65707bee4bcc751c0"]
],
"content": "{\"comment\":\"I've never seen this person before and it looks like they are a degenerate gambler. very high risk, do not recommend engaging with them.\",\"rating\":-1}",
"created_at": 1665705272,
"signature": "98ea8f65be00cab6d09274c22520b4496ef3a04ff98d52e130c9299af23981f9..."
}
A CANCEL_REQUEST
is a kind 5 deletion event referencing a OPEN_REQUEST
. This preserves the privacy of the borrower and the lender and signals this offer is no longer available. Only the borrower knows if the deal was accepted, and nobody knows who the lender is if there is one (unless they make a comment).
this is very simply freedom of speech
hella fun stuff to do:
- help poke holes in the protocol and make it better!
- do we want some "blips" or something to make this into a real protocol (if that's even necessary)?
- who wants to run the first relay?