vinney on Nostr: I'm nearly done with a web application that implements the Bounties/Lightning Escrows ...
I'm nearly done with a web application that implements the Bounties/Lightning Escrows covered in this NIP.
When it's finished, I'll post a link for any maniacs who want to test it (I say "test", but I'm not stopping you from creating real bounties).
This really feels like it has legs....
When it's finished, I'll post a link for any maniacs who want to test it (I say "test", but I'm not stopping you from creating real bounties).
This really feels like it has legs....
quoting nevent1q…qjksI just propsed my first #nostr #nip , I hope I didn't commit any mortal sins in my approach. I'm very much looking forward to discussing it!
https://github.com/nostr-protocol/nips/pull/1714
Lightning Network Bounties/Escrow
---------------------------------
`draft` `optional`
This NIP defines event kinds and structure for facilitating Lightning Network escrow services and bounties on nostr. It enables escrow agents to register their services and users to create, accept, and resolve bounty tasks using Lightning Network payments through nostr zaps.
## Events
### Event Kinds
- `3400`: Escrow Agent Registration
- `3401`: Task Proposal
- `3402`: Agent Task Acceptance
- `3403`: Task Finalization
- `3404`: Worker Application
- `3405`: Worker Assignment
- `3406`: Work Submission
- `3407`: Task Resolution
### Escrow Agent Registration (3400)
Used by escrow agents to advertise their services and terms.
```json
{
"kind": 3400,
"content": {
"name": "",
"about": "",
"fee_rate": "",
"min_amount": "",
"max_amount": "",
"dispute_resolution_policy": "",
"supported_currencies": ["BTC"]
},
"tags": [
["p", ""],
["r", "", " "]
]
}
```
### Task Proposal (3401)
Used to propose an escrow task with specified terms and requirements.
```json
{
"kind": 3401,
"content": {
"description": "",
"requirements": "",
"deadline": ""
},
"tags": [
["p", "", " "],
["amount", ""]
]
}
```
### Agent Task Acceptance (3402)
Used by escrow agents to accept task proposals. Only the agent specified in the task proposal can accept it.
```json
{
"kind": 3402,
"tags": [
["e", "", " "],
["p", "", " "]
]
}
```
### Task Finalization (3403)
Created after the task creator zaps the agent's acceptance event. This event makes the task live and available for worker applications.
```json
{
"kind": 3403,
"content": "",
"tags": [
["e", "", " "],
["e", "", " "],
["p", "", " "],
["amount", ""]
]
}
```
### Worker Application (3404)
Used by workers to apply for a finalized task.
```json
{
"kind": 3404,
"content": "",
"tags": [
["e", "", " "],
["p", "", " "],
["p", "", " "]
]
}
```
### Worker Assignment (3405)
Used by task creator to assign the task to a specific worker.
```json
{
"kind": 3405,
"tags": [
["e", "", " "],
["e", "", " "],
["p", "", " "],
["p", "", " "]
]
}
```
### Work Submission (3406)
Used by assigned worker to submit completed work.
```json
{
"kind": 3406,
"content": "",
"tags": [
["e", "", " "],
["p", "", " "],
["p", "", " "]
]
}
```
### Task Resolution (3407)
Used by agent to resolve the task and provide proof of payment.
```json
{
"kind": 3407,
"content": {
"resolution": "completed|rejected|canceled",
"resolution_details": ""
},
"tags": [
["e", "", " "],
["e", "", " "],
["p", "", " "],
["p", "", " "],
["amount", ""]
]
}
```