Oddbean new post about | logout
 I've spoken to a few people about this idea and have had mixed feedback so I'm not sure it's the right approach - but I thought I'd share here anyway with the hope that it sparks conversation about the best way to represent payments for apps that want to integrate nostr for the social layer, but where the zap spec doesn't quite work for their use case.

The idea is a new parameterised replaceable event that can represent any payment in any currency signed by a semi-trusted provider which in most cases will be the app that the user is posting from.

I see two key benefits of this approach which currently are not supported by the zap spec:

- Payment Recipient Not on Nostr - if the user making the payment is on nostr but the recipient is not, it's still useful to both allow the payment, and be able to represent it as a nostr event. Especially for apps that already have a payments component it makes the adoption of nostr e​asier because they don't have to try and retroactively fit the zap spec into their use case.

- Multiple Currencies - it's also useful for apps that already have a payment component to be able to represent payments in any currency. This de-couples the onboarding to nostr from the onboarding to bitcoin + lightning - something that can still be encouraged but can happen gradually.

For Fountain / Podcasting 2.0 specifically all the payments use keysend so as far as I'm aware there's no way to create a zap receipt that conforms to the spec. Maybe we should just try and switch all the Podcasting 2.0 payments to BOLT-11 - but with BOLT-12 and potentially other payment mechanisms like ecash becoming more popular - is it useful to have a more generic representation of a payment?

Keen to hear people's feedback on this and whether there are any other ideas that might work?

 nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s would also be great to get your thoughts on whether there is a way to 'fit' keysend payments into the existing zap spec / general thoughts on extending it.

https://github.com/nostr-protocol/nips/pull/1339