فتح النقاش

Hi all,

We developed an Unlock protocol plugin for Discourse. It let you lock topics behind a “crypto” paywall.

People have to buy your NFT with their crypto wallet (Mestamask, Wallet connect) to access topics. You can configure it with any ERC20 on Ethereum, xDai, Polygon…Since last week, you can also unlock with credit card payment.

ezgif-3-eda9d8c4547d

You can test it on the unlock protocol community forum : https://unlock.community, for example this topic is locked : https://unlock.community/t/introducing-the-dao/68 (on xDai).

You could use the same lock to also give access your users to Discord private channels with https://swordybot.com/.

Plugin repo : GitHub - discourse/discourse-unlock
Documentation : Unlock Discourse plugin - 🧙‍♂️ Developers - Unlock

Don’t hesitate if you have any questions.

32 إعجابًا

Interesting, I wonder if there is a financial vehicle that could be engineered in the Ethereum (or other crypto engines) for repeat transactions. Would be kind of cool to offer a subscription service where you opt to pay X every month.

9 إعجابات

Can we setup unlock for comment? Only comment first or comment second not topic title and content main?
And, can we add charge by dollar via Visa or paypal not Crypto?

إعجاب واحد (1)

Hello @sam,

It is possible with unlock protcol : Recurring Memberships | Unlock: The Web's new business model

But for the moment it’s not implanted in the plugin. Will add it in the next version.

7 إعجابات

Not sure to understand that part.

Yes, it’s also possible to pay with credit card : Credit Card Support

إعجابَين (2)

Mean Unlock comment but topic unstill display

إعجابَين (2)

Hi Sam! I am Julien, the founder of Unlock Protocol!

Indeed, it is possible like @kam44 said.

The core mechanism is to use the “approval” mechanism that the ERC20 contracts provide.
The core idea is to approve a 3rd party contract, called the “purchaser” whose single job is to purchase memberships on behalf of users when they are either expired (or soon to be expired). So basically a membership can only be “renewed” when it is either nearly expired, or fully expired.

One of the challenges that we’re trying to solve is to find who will trigger the transaction on that purchaser contract. Rigth now, the approach is to make the purchase “pay back” the person triggering the transaction so that this covers the gas fees. I think we can leverage the “flashbots” who have been doing arbitrage to do that!

It is definitely one of the things we’re trying to work on!

3 إعجابات

Amazing, I find some of the financial vehicles smart contracts have on offer to be fascinating. I think this could be extremely powerful as a way of funding the right community.

In particular we already have Discourse Subscriptions so perhaps a PR to allow for a “Unlock” mode vs “Stripe” may be an interesting path to take.

8 إعجابات

@kam44
any news about “unlock comments” ?

3 إعجابات

Any Update
This plugin seems interesting

Great Job Man !

إعجاب واحد (1)

لقد أنشأت عقدين للقفل على لوحة تحكم Unlock
أ. قفل للمستخدمين الذين لديهم رموز (1000 < المبلغ < 5000)
ب. قفل للمستخدمين الذين لديهم أكثر من 5000 رمز

بالنسبة لـ أ، أود إضافتهم إلى المجموعة أ على discourse
بالنسبة لـ ب، أود إضافتهم إلى المجموعة ب على discourse

حالياً، لا يدعم المكون الإضافي لـ Unlock سوى عقد قفل واحد على discourse. هل هناك أي حيلة لتحقيق الهدف؟

إعجابَين (2)

هل توصلت إلى حل لاستخدام أكثر من عقد واحد؟

أحاول تنزيل المكون الإضافي لبروتوكول إلغاء القفل. أحصل على الصفحات/الأخطاء التالية. يرجى إخباري كيف يمكنني حل هذا:


إعجاب واحد (1)

مرحباً وأهلاً بك @thesidsridhar :slightly_smiling_face:

بما أنه مكون إضافي غير رسمي، فقد نقلت مشاركتك إلى موضوع المكون الإضافي Unlock حيث أعتقد أنه سيكون مكانًا أفضل للحصول على الدعم من الأشخاص الذين يعرفون المزيد عنه. :+1:

إعجاب واحد (1)

في الواقع، تتم إدارة المكون الإضافي الآن بواسطة فريق Discourse، كما يمكنك رؤيته هنا: https://github.com/discourse/discourse-unlock

م.م @zogstrip

5 إعجابات

أوه، أعتذر. :pray: لقد فاتني هذا التبديل. شكراً على التنبيه. :+1:

4 إعجابات

لا تقلق، لم نذكر ذلك في أي مكان.

إعجابَين (2)

مرحباً @zogstrip أردت المتابعة مرة أخرى بشأن ما سبق. كيف يمكنني حل خطأ HasCustomFields:NotPreloadedError؟

3 إعجابات

أخشى أن الدعم لهذا المكون الإضافي قليل جدًا بسبب موسم العطلات، ولكن (على أي حال) لقد قمت للتو بتثبيته على موقع الاختبار الخاص بي وأواجه أيضًا مشكلة في الوصول مع ظهور رسالة “عذرًا - خطأ 500” مع نفس الخطأ المسجل:

رسالة

HasCustomFields::NotPreloadedError (تمت محاولة الوصول إلى حقل مخصص غير محمل مسبقًا 'unlock-lock' على الفئة 'Category'. هذا محظور لمنع استعلامات N+1.)
app/models/concerns/has_custom_fields.rb:175:in `[]'
(eval):37:in `_fast_attributes'
(eval):6:in `_fast_attributes'
app/controllers/application_controller.rb:637:in `preload_current_user_data'
app/controllers/application_controller.rb:437:in `preload_json'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:209:in `call'

تتبع الأخطاء

app/models/concerns/has_custom_fields.rb:175:in `[]'
plugins/discourse-unlock/plugin.rb:63:in `block (2 levels) in activate!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'
(eval):37:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/chat/app/serializers/chat_channel_serializer.rb:51:in `chatable'
(eval):6:in `_fast_attributes'

أعتقد أن هناك تعارضًا مع المكون الإضافي للدردشة بطريقة ما. إذا قمت بتعطيل الدردشة عبر وحدة تحكم rails، فيمكنني الوصول إلى موقعي كالمعتاد (بما في ذلك الصفحة /admin/plugins/discourse-unlock).

6 إعجابات

رائع! كيف يمكنني تعطيل الدردشة عبر وحدة تحكم Rails؟

إعجابَين (2)