30817:decentralized-crowdfunding
Decentralized Crowdfunding
- signed by
- npub1ldsmj...ghzsk3
- published
- 2025-12-02
- event
- 811bcc6490...aad3
NIP-3030
Decentralized Crowdfunding
draft optional
Implemented in Angor, Angor Hub and Angor Profile.
Terms
founder- creator of the crowdfunding campaigninvestor- investor of the crowdfunding campaignprojectIdentifier- the unique identifier of the project on the specific implementation of the protocol
Decentralized Crowdfunding Protocol
The protocol utilizes the Nostr network to create a decentralized crowdfunding platform. The protocol allows founders to create crowdfunding campaigns and investors to invest in them. The protocol is relying on standard Nostr events for the majority of metadata, except for the specific events defined in this NIP.
Campaign Setup
The founder creates a funding campaign by sending a 3030 event to the Nostr network. Then a Bitcoin transaction that includes the event identifier is sent to the blockchain with the identifier as OP_RETURN value.
Any software can implement the protocol, with different security models for wallets.
Campaign Browser
Campaign software should be entirely clientside, either as a stand-alone app, or as a purely frontend webpage.
It should find all the published kind: 3030 events, then use the nostrPubKey field in the content to query for profile NIP-01 (kind: 0) and NIP-78 data.
Tags (d) used by the protocol are:
- ['angor:members']
- ['angor:project']
- ['angor:faq']
- ['angor:media']
It should additionally query and indexer of the blockchain (e.g. Bitcoin) to find the transactions with the event identifier in the OP_RETURN field.
Event 3030: Create a funding campaign.
Event Content
{
"founderKey": <string, Bitcoin public key of the founder>,
"founderRecoveryKey": <string, Bitcoin public key of the founder recovery key>,
"projectIdentifier": <string, unique identifier of the project>,
"startDate": <int, UNIX timestamp of the start date of the campaign>,
"penaltyDays": <int, number of days after the end date of the campaign when the penalty is applied>,
"expiryDate": <int, UNIX timestamp of the end date of the campaign>,
"targetAmount": <int, target amount of the campaign in sats>,
"stages":
[{"amountToRelease":25,"releaseDate": <int, UNIX timestamp of the release date of the stage>},
{"amountToRelease":25,"releaseDate": <int, UNIX timestamp of the release date of the stage>},
{"amountToRelease":25,"releaseDate": <int, UNIX timestamp of the release date of the stage>},
{"amountToRelease":25,"releaseDate": <int, UNIX timestamp of the release date of the stage>}]]
}
Event 3031: Campaign seeders.
Event Content
WORK-IN-PROGRESS: Multiple decisions needs to be made during final implementation.
Add "eventId" as a "d" tag.
{
"projectIdentifier": <string, unique identifier of the project>,
"projectSeeders":{"threshold":0,"secretHashes":[]}
}
Additional
The full P2P Funding Protocol can be found BCIP-0005
Cited links
github.com
GitHub - block-core/angor: A decentralized P2P Funding Protocol built on Bitcoin and Nostr
A decentralized P2P Funding Protocol built on Bitcoin and Nostr - block-core/angor
github.com
GitHub - block-core/angor-hub: About Angor Hub is a Nostr client that is customized around the Angor protocol, a dece...
About Angor Hub is a Nostr client that is customized around the Angor protocol, a decentralized crowdfunding platform. - block-core/angor-hub
github.com
GitHub - block-core/angor-profile: Profile editor for Founders
Profile editor for Founders. Contribute to block-core/angor-profile development by creating an account on GitHub.
github.com
bcips/bcip-0005.md at main · block-core/bcips
Blockcore Improvement Proposals. Contribute to block-core/bcips development by creating an account on GitHub.
Discussion
Connect a key to comment.