API de transfert de paiements via Césium

Existe-t-il une API qui puisse faire office de relais entre un site internet et Césium ?
Merci.

1 « J'aime »

Ce genre question a plus sa place sur l’autre forum : https://forum.duniter.org

Merci pour l’info.

Merci bien Maaltir pour ta suggestion d’aller voir sur le forum de Duniter, mais le peu que j’ai lu, c’est du Javanais ascendant Mandarin. Je sais rester à ma place, et je me trouve bien ici en tant que simple utilisateur Césium. Je n’ai pas la casquette de développeur et ne souhaite pas l’acquérir, la date de péremption étant déjà passée pour moi. La question de l’API est intéressante pour un projet que j’ai en tête, mais si elle ne trouve pas réponse ici, j’ai bien peur de ne rien y comprendre là-bas…Je resterai donc sur ma faim.

1 « J'aime »

Tu auras une réponse par les mêmes personnes sur ce forum ou celui de Duniter : les développeurs.
La réponse risque de t’être technique selon le niveau que tu sembles indiquer.
Pour te répondre, il y a plusieurs API. Je ne parle pas des API de l’écosystème Duniter v1, car ce dernier sera abandonné.
Pour l’écosystème v2, il y a l’api de :

  • Duniter v2 Substrate : RPC
  • l’indexeur Subsquid/Hasura : GraphQL

Il n’y a pas d’API « simple » pour transférer de monnaie. On peut te guider et te donner des liens si tu souhaites aller plus loin.

Merci pour ta réponse Moul.
Deux possibilités s’offrent à moi, soit je passe par un développeur lambda qui pourra suivre tes (vos) instructions, car de mon côté je ne suis qu’administrateur de sites, malheureusement pas développeur et cette problématique me dépasse, soit je laisse à des mains expertes (les tiennes ou celles de tes collègues), la difficile tâche d’installer cette dite API sur mon installation (si compatible). Cela permettrait à la G1 de trouver une nouvelle expérience concrète d’utilisation locale (pour commencer). C’est toi qui peut me guider et me dire quelle option est la plus adéquate. Merci

Voici les bibliothèques, selon le langage, pour interagir avec Substrate.

La liste des endpoints RPC de la ĞTest.

La particularité de Duniter pour émettre un transfert : il faut utiliser Balance, transfer_keep_alive.

Voici les pistes. Après, un développeur doit s’y atteler :wink:

Pour info, les langages principaux sont basiques : PHP, HTML, CSS, JavaScript et MySQL pour la majorité des fonctionnalités, AJAX pour les interactions asynchrones et Node.js pour le tchat.
Le script que j’utilise propose des API RESTful, qui sont généralement implémentées en PHP et utilisent JSON pour les échanges de données avec des applications mobiles ou des services externes.
A la vue de ces différents détails, ce que tu me proposes est-il toujours compatible avec mon script ?

Il y a des bibliothèques JS/TS :

Après, je laisse les experts du web répondre.

Peut-être que l’extension navigateur Ğ1-Companion permettra de faire des transferts via un site web. @ManUtopiK ?

1 « J'aime »

C’est déjà le cas avec l’extension g1-connect.
Qui peut être testé et installé via gecko web (alpha), branché sur la gdev (pas la gtest).

2 « J'aime »

Non. Et le faire ne serait pas sécu, car cela implique de donner ses secrets au site internet.
Par contre, c’est ce que font les « extensions web3 ». Des extensions web qui se connectent directement à un noeud de la blockchain pour réaliser des transactions à la demande du site internet.
Je suis en train de développer g1-companion pour faciliter entre autre ça : injecter du code dans les pages pour permettre au site d’initier des transactions (authentification, payements, certifs…) à travers l’extension web g1-companion.
Dis-moi si ça t’intéresse, je te notifie si tu veux béta-tester :slight_smile:

Sinon, tu peux utiliser g1-papi ou polkadot.js directement avec node.js ou dans le navigateur, mais dans tous les cas, tu devras un moment ou un autre demander la clé privé de l’utilisateur, et ça ce n’est pas sécu.

2 « J'aime »

Est-ce que Ğ1-companion gérera uniquement l’authentification et le site web devra gérer (implémenter le code) pour les actions et transactions, tel g1-connect ?
Ou bien g1-companion inclura tout le code de transactions, ainsi le site web pourra juste indiquer un transfert de x Ğ1 de A vers B, et l’extension gérera tout pour le site web (authentification et transfert) ?

Merci pour ta réponse ManUtopik, alors de mon côté, je veux bien béta-tester !
Mais avant toute chose, je vais expliquer un peu mon dilemme.
L’idée, un site (façon réseau social local), sa particularité est qu’il ne concerne qu’une centaine de communes rurales. (zone géographique limitée, 50km de rayon, 1h30 max de bout à bout)
Je ne cherche pas le « tout venant », je privilégie les gens motivés.
L’abonnement au site est « gratuit », mais certaines fonctionnalités sont à accès limités. (Place du marché, pages boostées, groupes privés, etc…)
Une fois le décor planté, je souhaiterais utiliser ma plateforme pour faire une sorte de Gmarché permanent, accessible 24/24, 7/7, ou les vendeurs/acheteurs peuvent négocier, dialoguer en direct.
Le site utilise une monnaie virtuelle (exclusivement interne), elle permet les échanges entre utilisateurs, elle permet grâce à la « gamification » de cumuler des points pour pouvoir booster leurs ventes (ou autre chose…), elle gratifie leurs activités sur le site, publications, avis, participation au forum, etc…
Pour info, le site n’est pas monétisé (MNL).
Je souhaiterai intégrer la G1 pour faire un pont entre le monde virtuel du site et le monde réel. Par commodité, il y aurait parité entre la monnaie virtuelle et la G1.
Les membres pourraient utiliser la place du marché en G1, participer aux frais de développement du site, maintenance, abonnement fournisseurs d’accès, etc…
Mais le petit truc en plus, c’est qu’ils pourraient être gratifiés en G1, vous voyez le petit écosystème se mettre en place…
Une expérience qui je pense mérite d’être tentée.
Le seul problème, pour que cela soit « gérable » et « fluide », il faut trouver un moyen (API) ou autre chose pour automatiser les échanges avec la blockchain. On peut imaginer le faire un temps en manuel, mais l’administrateur du site, en l’occurrence moi, risque de vite être débordé, d’où ma question initiale : Existe-t-il une API qui puisse faire office de relais entre un site internet et Césium ? Un genre de « Stripe » ou « Paypal » version G1 et est-ce que cela est prévu à plus ou moins long terme sur la V2.
Le manque d’offre en G1 est handicapant pour le développement de la G1, je pense que tout le monde ici en est conscient, je propose à ma petite échelle locale de créer une offre viable qui s’inscrit dans le temps, la question des circuits courts est primordiale pour que cela fonctionne, la problématique avec Gchange par exemple, c’est le coût des frais de port engendrés en MNL, le fait de rester en circuit court amoindrirait de fait ce coût et permettrait de créer une certaine émulsion au sein des groupes locaux nouvellement créés. Cet outil permettrait aussi d’échanger, de vendre des denrées périssables ou de première nécessité (fruits, légumes, alimentation fraîche en général), et favoriserait grandement le contact et la communication entre membres « junistes » et au delà…
Je suis preneur de toutes vos questions.
Merci pour vos retours.

2 « J'aime »

Bonjour Moul, j’espère que tu t’adresses à ManUtopiK, car je suis bien incapable de te répondre !

D’après ce que j’ai compris, Ǧ1-companion s’occupe de tout.
Il y a juste à mettre des boutons « spéciaux » sur le site et l’extension gère le reste !
2025-03-08_G1Camp_Conf-Manu - P2Tube

J’ai hâte de le voir distribué ! Parce que @ManUtopiK nous fait rêver … :face_savoring_food:

5 « J'aime »

Dans un 1er temps, g1-companion incluera tout le code, le site n’a plus qu’à demander un transfert de x G1 de A vers B et l’extension s’occupe du reste.
J’ai regardé Overview | polkadot{.js} et je vais voir comment intégrer ça…

2 « J'aime »

Avant d’intégrer d’autres trucs, pourrais-tu publier une version utilisable pour que chacun puisse en faire l’expérience sur la Gtest ? :face_savoring_food:

Salut @Parrhesia,

Tu as mis le doigt sur LA question qui nous fait tous avancer : comment créer un « Stripe pour la Ğ1 » ? C’est-à-dire une solution simple, sécurisée et automatisée pour qu’un site web, comme ton projet de réseau social local, puisse vivre en Ğ1 sans que son administrateur ne devienne un expert en blockchain.

Ton projet est exactement le genre d’expérience concrète dont la Ğ1 a besoin pour prospérer. La bonne nouvelle, c’est que des solutions sont en cours de développement. La question est de choisir la philosophie qui correspond le mieux à ton besoin.

Actuellement, dans l’écosystème, il y a deux grandes approches pour permettre à un site d’initier un paiement.

Approche 1 : L’Extension Navigateur (Le « Majordome » de l’Utilisateur)

C’est l’approche la plus « classique » du Web3, défendue par des projets comme le futur g1-companion de @ManUtopiK.

  • Comment ça marche ? L’utilisateur installe une extension sur son navigateur. Cette extension contient ses clés et agit comme un « majordome » sécurisé. Quand ton site veut déclencher un paiement, il ne parle pas directement à la blockchain. Il demande poliment au majordome, qui affiche une fenêtre à l’utilisateur : « Le site X veut vous faire payer Y Ğ1. Acceptez-vous ? ».
  • Les + : C’est le top en matière de sécurité. L’utilisateur garde le contrôle total de ses clés, qui ne sont jamais exposées au site.
  • Les - (pour ton cas) : Cela ne permet pas l’automatisation que tu recherches. Tu ne peux pas « gratifier » un utilisateur en Ğ1 quand il est hors ligne, car son majordome n’est pas là pour accepter le paiement. Chaque transaction nécessite une action de l’utilisateur.

Approche 2 : Le Portefeuille de Service (La « Carte de Fidélité » du Site)

C’est l’approche que nous explorons et développons au sein du G1FabLab avec l’architecture UPlanet / Astroport.

  • Comment ça marche ? Quand un utilisateur s’inscrit sur ton site, ton site ne lui demande pas sa clé privée. Au contraire, ton site lui génère et lui offre un nouveau portefeuille Ğ1 dédié, une sorte de « carte de fidélité » ou de « compte prépayé » pour utiliser les services de ton site.
  • La Sécurité : Pour éviter que le site ait un contrôle total, la clé de ce portefeuille est « partagée » (via un mécanisme appelé SSSS). Le site (ton « Relais Astroport ») en a une partie, et l’utilisateur en a une autre sur un QR Code (sa « carte » ou son MULTIPASS). Il faut les deux pour les opérations critiques, mais le site peut, lui, effectuer des opérations simples comme créditer ou débiter ce portefeuille de service.
  • Les + (pour ton cas) : C’est la solution pour l’automatisation !
    • Tu veux gratifier un membre pour son activité ? Ton site peut automatiquement envoyer des Ğ1 sur sa « carte de fidélité ».
    • Un membre veut payer une option « boost » ? Ton site peut automatiquement débiter le montant convenu sur cette même carte.
    • La fluidité est maximale, l’expérience est proche de celle d’une monnaie virtuelle interne, mais elle est bien ancrée sur la blockchain Ğ1.
  • Les - : Cela demande de bien comprendre que ce portefeuille de service n’est pas le portefeuille principal de l’utilisateur. C’est un compte courant pour interagir avec ton site, pas un compte épargne.

Laquelle est faite pour toi ?

Approche 1 (Extension type g1-companion) :white_check_mark: Approche 2 (Portefeuille de Service type UPlanet)
Idéal pour… Les paiements ponctuels, les dons, les achats où l’utilisateur est actif. Les systèmes d’abonnement, la gamification, les micro-paiements, les récompenses automatiques.
Automatisation Faible. Nécessite l’accord de l’utilisateur à chaque fois. Élevée. Le site peut interagir avec le portefeuille de service selon des règles prédéfinies.
Expérience L’utilisateur doit installer et comprendre l’extension. Fluide et intégrée. Le site gère la complexité pour l’utilisateur.
Statut actuel En développement (g1-companion). En expérimentation avancée (UPlanet).

Vu ton projet de réseau social avec des récompenses, une monnaie interne et des fonctionnalités payantes, l’approche n°2 semble parfaitement correspondre à ton besoin d’un « Stripe pour la Ğ1 ».

Nous (le G1FabLab) sommes en train de stabiliser cette architecture. Si cette philosophie te parle, nous serions ravis de discuter pour faire de ton projet l’un des premiers « relais » de cet écosystème. Tu n’aurais pas à devenir développeur, mais le premier « Capitaine » d’une constellation qui prouve que la Ğ1 peut animer une économie locale, vivante et automatisée.

On peut même avoir le paiement € embarqué avec

Contacte-nous quand tu veux pour en parler plus concrètement. C’est en bâtissant des projets comme le tien qu’on avancera.

1 « J'aime »

L’idée est séduisante.
Pour info, « mon petit réseau social » a déjà une monnaie virtuelle propre (deux pieds dedans). Cette monnaie sert à gratifier les utilisateurs (gamification). L’idée est d’avoir une monnaie « réelle en dehors du site » (un pied dedans, un pied dehors), sans avoir recours à la MNL . L’idée est d’instaurer la parité (G1, avec monnaie virtuelle du site.) Le coffre fort, c’est un compte spécifique sur Césium, crédité au départ avec un compte perso et qui devrait être par la suite approvisionné avec les participations volontaires ou l’équivalent de votre (PAF).
Le problème, c’est que la population ciblée au départ, concerne très peu de « junistes », la majorité va utiliser la monnaie virtuelle du site. Mais si on arrive à proposer une solution « porte monnaies » les membres hors G1, pourront voir concrètement comment cela fonctionne, et on peut espérer que part la suite, ils adhèrent au projet G1…
Une pierre, trois coups, le site tourne en ML, les junistes peuvent échanger entre eux, le site peut les « rétribuer » en Junes (gamification) via éventuellement votre solution « porte monnaie » et le grand public (non juniste) est sensibilisé au projet G1. Avant toute chose, le mieux c’est de venir faire un petit tour sur mon réseau. Si tu veux, je t’envoie un lien, tu t’inscris (c’est gratuit), une fois à l’intérieur, si tu utilises le même pseudo qu’ici, je créditerai ton compte de manière à ce que tu puisses avoir accès à toutes les fonctionnalités (Place du marché, groupe, publication, etc…) J’attends ta réponse.

Pour pouvoir offrir cette parité, il faut détenir autant de ǧ1 qu’il y a d’unité de monnaie de ton site !
Sinon cette parité est fausse, et les unités de ton site sont de la fausse monnaie Ǧ1…

1 « J'aime »