What is Nostr?
vinney
npub19ma…axkl
2025-01-23 21:51:30

vinney on Nostr: I just propsed my first #nostr #nip , I hope I didn't commit any mortal sins in my ...

I 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": "<string>",
"about": "<string>",
"fee_rate": "<decimal between 0 and 1>",
"min_amount": "<integer in sats>",
"max_amount": "<integer in sats>",
"dispute_resolution_policy": "<string>",
"supported_currencies": ["BTC"]
},
"tags": [
["p", "<agent-pubkey>"],
["r", "<agent-terms-url>", "<optional recommended relay URL>"]
]
}
```

### Task Proposal (3401)

Used to propose an escrow task with specified terms and requirements.

```json
{
"kind": 3401,
"content": {
"description": "<string>",
"requirements": "<string>",
"deadline": "<unix timestamp in seconds>"
},
"tags": [
["p", "<agent-pubkey>", "<optional recommended relay URL>"],
["amount", "<integer in sats>"]
]
}
```

### 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", "<task-proposal-event-id>", "<optional recommended relay URL>"],
["p", "<creator-pubkey>", "<optional recommended relay URL>"]
]
}
```

### 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", "<agent-acceptance-event-id>", "<optional recommended relay URL>"],
["e", "<zap-receipt-event-id>", "<optional recommended relay URL>"],
["p", "<agent-pubkey>", "<optional recommended relay URL>"],
["amount", "<integer in sats>"]
]
}
```

### Worker Application (3404)

Used by workers to apply for a finalized task.

```json
{
"kind": 3404,
"content": "<application details>",
"tags": [
["e", "<task-finalization-event-id>", "<optional recommended relay URL>"],
["p", "<creator-pubkey>", "<optional recommended relay URL>"],
["p", "<agent-pubkey>", "<optional recommended relay URL>"]
]
}
```

### Worker Assignment (3405)

Used by task creator to assign the task to a specific worker.

```json
{
"kind": 3405,
"tags": [
["e", "<task-finalization-event-id>", "<optional recommended relay URL>"],
["e", "<worker-application-event-id>", "<optional recommended relay URL>"],
["p", "<worker-pubkey>", "<optional recommended relay URL>"],
["p", "<agent-pubkey>", "<optional recommended relay URL>"]
]
}
```

### Work Submission (3406)

Used by assigned worker to submit completed work.

```json
{
"kind": 3406,
"content": "<work details/proof>",
"tags": [
["e", "<worker-assignment-event-id>", "<optional recommended relay URL>"],
["p", "<creator-pubkey>", "<optional recommended relay URL>"],
["p", "<agent-pubkey>", "<optional recommended relay URL>"]
]
}
```

### 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": "<string>"
},
"tags": [
["e", "<work-submission-event-id>", "<optional recommended relay URL>"],
["e", "<zap-receipt-event-id>", "<optional recommended relay URL>"],
["p", "<creator-pubkey>", "<optional recommended relay URL>"],
["p", "<worker-pubkey>", "<optional recommended relay URL>"],
["amount", "<integer in sats>"]
]
}
```


Author Public Key
npub19ma2w9dmk3kat0nt0k5dwuqzvmg3va9ezwup0zkakhpwv0vcwvcsg8axkl