Hi all! I’m coming at this from a broker perspective. I love Bluesky and the idea of the atproto, and have been thinking about how ways Foxy.io (a “small tech”, bootstrapped, site/framework/payment-gateway agnostic platform for custom ecommerce) could help support apps on the protocol. (I co-founded Foxy in 2007. I hope it’s ok for me to reference it in the context of this discussion. Lmk if that violates any rules and I’ll remove any references.)
I’ve been building a proof of concept with Foxy as the broker, so these are my first impressions after spending the past 2 days experimenting.
Three-party attestation: I like this a lot, but I was initially confused because there are 4 parties at the top of the spec: brokers, app devs, recipients, and payers. 3 of those attest, 1 of them verifies (and initiates).
Also, “recipients” are called “creators” elsewhere in the spec (and I’d generally call them “merchants”). “Payers” are called “supporters” (I’d generally call them “customers”). Minor but in the context of trying to understand a full spec, it added some friction for me.
Decoupling payments from apps/platforms: I think this is the most interesting aspect of the spec, and the thing that makes the atprotocol so compelling. Imagine Patreon/Substack/OnlyFans on the atproto, but where creators own not only their accounts and followers, but also their payments.
Maybe the creator wants to accept specific regional payment methods. Maybe the creator’s doing adult content or political speech, and can’t get a normal payment account. Maybe the creator has tax, shipping, discount/coupon/gift card requirements. Find a broker who meets those needs at a fair price, and if things go sideways or their needs change, they can choose a different broker.
This decoupled approach could also allow a podcaster (for example) to control their own payments, while allowing any compatible atproto podcasting app to list their podcasts in the app. The creator doesn’t care which app is used to listen to the podcast, and the app dev doesn’t need to care about supporting all the myriad different requirements merchants have when it comes to payments.
It’s true app devs would have a more difficult time making money off payments, but personally I’d like to see creators have a bit more control than apps/platforms.
Additional (shorter) first impressions:
Recurring billing units: We support day and week. day isn’t very common, but we see merchants use week for consumables, auto-ship, stuff like that. “Every 4 weeks” makes more sense than “every 1 month”. I’d suggest the spec support those units, even if they aren’t common.
Recurring / Scheduled payment failures: I’m still digging and experimenting, but it’s not clear to me how payment failures are handled, and/or how individual payments can be tied to the recurring or scheduled.
Invalidations:
To invalidate a payment, the broker deletes or updates its network.attested.payment.proof record and notifies the recipient. Apps that verify payments will see the proof is missing or marked invalid and treat the payment as no longer active
I appreciate the simplicity of simply deleting the proof, but in the context of the spec, I’m unclear on what “marked invalid” would mean. The “notifies the recipient” might become more clear as I continue building, but if there are best-practices around that, it’d be worth noting.
I’m continuing to work through some unknowns in my proof of concept (like whether/how to best support Foxy updating a seller’s proof, as in the consumables example), but I very much appreciate how this puts creators in charge of their own payments.
The spec looks good. Examples are good. I was able to work through my questions, and I’m excited to continue to poke at it (and more excited at the possibility that this facilitates some really neat atmosphere apps, especially when private content becomes a thing).
Thanks @ngerakines.me. Neat stuff.