Replying to Avatar ContextVM

Proposal for ContextVM Payments

We're enhancing the payment system for ContextVM and its TypeScript SDK to create a flexible and robust framework that supports multiple payment methods like Bitcoin, Lightning, Cashu, and we are looking for some feedback. Here’s our current progress:

We propose introducing a `payment_method` field to clearly identify the payment method used in payment request notifications, aligning with the W3C Payment Method Identifiers (PMI) specification. This ensures interoperability and future-proofing, making it easier to support various currencies and payment systems. Payment identifiers will look like `bitcoin-lightning`, `bitcoin-lightning-bolt11`, or `ecash-cashu`.

On the SDK side, we propose a modular architecture with `PaymentHandler` and `PaymentProcessor` interfaces for client and server transports, respectively. This approach allows different payment methods to coexist seamlessly, enabling users to implement their own payment methods by adhering to these interfaces.

However, we face some challenges. One main hurdle is handling mismatching payment methods between clients and servers effectively. To address this, we propose maintaining an array of payment handlers or processors, each satisfying a standard interface and specific to a payment method. For example, a server supporting both Lightning Network (LN) and Cashu would be initialized with [LNPaymentProcessor, CashuPaymentProcessor], while a client supporting only LN would be initialized with just [LNPaymentHandler]. More info in the linked issue below

We invite you to review our progress and provide valuable feedback:

ContextVM Spec PR: https://github.com/ContextVM/contextvm-docs/pull/2

ContextVM ts-sdk: https://github.com/ContextVM/ts-sdk/issues/6

Your insights and suggestions are crucial in helping us overcome these challenges and shape these updates. Let's build a better payment system together!

If you are interested in machine-to-machine payments and feel curious to know how we plan to introduce them in ContextVM, please read this note and let us know what you think. Feedback its appreciated 🤙

nostr:nevent1qqs0juucj73ftfg4lmyj928azxg5540exx0pj0t08y4mev2t79vqv0qpz3mhxue69uhhwmm59ehx7um5wghxuet59upzq6ehsrhjjuh885mshp9ru50842dwxjl5z2fcmnaan30k8v3pg9kgqvzqqqqqqyy55es6

Reply to this note

Please Login to reply.

Discussion

This is cool… are you thinking like final product handheld tap devices that can swap “e-currency” seamlessly

Hmm not really that seems pretty far away of the current state of the project. I'm trying to come up with a way to handle the multiple payment methods that can exist, defining standard PMIs following w3c conventions

Still cool… I’m a big supporter of well documented standardization

Little by little :) 💪

Currently all docs are in contextvm.org

Awesome! I’ll definitely take a look at the docs :)