Common Ground: AE integration for token-gated communities in the æcosystem

Dear All

I want to introduce myself and the project Common Ground, as well as ask for your help & guidance to integrate the æternity blockchain into the Common Ground application.

I’m a co-founder of Common Ground. My background is in law & tech. Here’s my twitter. I’m very excited to be more active here and in the AE ecosystem in general.

What is Common Ground?

  • A communication platform for communities and ecosystems to collaborate, connect and build together
  • Works & feels like a mix of Slack and Discord but features blogging and feeds like Medium/Mirror as well
  • Follows a Web2.5 approach, offering people to signup with wallets if they want (email possible as well), and allows for token-gating of chats & blogs out of the box, supporting 9 different blockchains in the EVM ecosystem at the moment

Why does it matter to Aeternity?

  • Aeternity becomes it’s own ecosystem on Common Ground, i.e. a dedicated & exclusive hub for all of its communities and builders
  • Ecosystems on Common Ground are our white-label offering that give Aeternity its own, branded instance of the platform to connect and foster collaboration across all the projects and communities in the AE ecosystem
  • It’s as if Aeternity had it’s own Discord-like platform where all the projects & communities of the AE family are at home, including dedicated mobile & desktop apps

Which problems does this solve for Aeternity?

  • Aeternity can surface critical information to all of its communities in a single place, receive feedback and discuss
  • Aeternity can foster collaboration between all of its stakeholders more easily
  • Aeternity can collaborate with other ecosystems on Common Ground more easily and expand its reach
  • Aeternity can present itself to the outside world and show off the incredible wealth of communities it is creating in its ecosystem
  • Aeternity can distribute funding, grants & other opportunities more effectively by building on web3-native tooling, including reputation features for people & communities

What’s the state of development of Common Ground?

  • Common Ground has been in closed alpha since May 2022 and public alpha since Jan 2023 and will reach beta end of Q3 2023
  • Common Ground will be ready to offer an Aeternity-specific ecosystem instance in Q4 2023
  • Common Ground already works well on mobile & desktop across all devices & operating systems
  • We’re currently building the last remaining features to consider ourselves a high-quality MVP, with all essential features to make it a good and reliable group messaging application
  • After finishing the MVP, we will implement the ecosystem white-labelling to cater to the Aeternity ecosystem

Why we need your help

  • In order to implement Aeternity-specific features around token-gating and wallet support, we need your help to integrate the aeternity blockchain into the Common Ground backend
  • We have so far only worked with EVM blockchains, so that’s the tech we currently understand well. Common Ground currently supports token-gating for ERC721, ERC20 and ERC1155 smart contracts.
  • We are now faced with the challenge to build the equivalent features for AE-based assets.

How you can help us build the AE-ecosystem app

  • We have to understand which token contracts on AE should be supported for token-gating
  • We have to understand how we can listen to on-chain events and update token-balances of wallets accordingly
  • We have to understand how to support authentication with an aeternity wallet

So far I have received the following helpful hints from friends in the ecosystem
Unfortunately I cannot post the links I’ve received because I’m a new user :smiley: But I’ve received links to

  • Node API documentation
  • Middleware api documentation
  • Typscript SDK docs

Any other resources that you think will be helpful on our mission are much appreciated.

Thank you!

Florian

Hey @flotob,

really happy to see this post after our discussions during past weeks and months. Love what you are doing with CommonGround and I can’t wait to see æternity integrated there :heart:

You can definitely count on my help and ping me anytime needed! :wink:

And of course I encourage everybody else in the community to feed Florian with the information he needs to get stuff done :fire:

This post made my day, really! :slight_smile:

Marco

5 Likes

Super curious to try out Common Ground :smiley: :raised_hands:
Would love to see it running as a DAO on AE , a Discord-like interface will be a great user experience :muscle:

1 Like

Let’s grow the æternity community on Common Ground :slight_smile:

Join here: Common Ground

2 Likes

Hi! CG looks promising.
I’m a core developer on Aeternity, one of the two developers working on the Vanillae library (simpler integrations with AE than the full-service SDK for languages other than just TS/JS), and the lead developer on Tsuriai’s marketplace and commercial projects that are based on AE.

Looking at the wallet integrations you have, are you intending to enable things like login-via-signature (this is how Aegora does login, for example), or more generally integrate with wallet features?

A stumbling block we’ve had in terms of integration with site backends has been contract call data formation. At the moment the Vanillae lib does all the processing necessary to go from a contract’s ACI, a function name and arguments to complete contract call data (sign that data with a wallet and submit it to any node and it’s in the mempool), but this is a lot of language-specific processing that is unrealistic to implement in every language anyone might want to write an app or site in, so I’m currently in the process of making those features run in the AE node itself (where code for this already all exists) and making it available as an HTTP endpoint (related post in the Vanillae megathread here Aegora/Vanillae post series - #14 by zxq9).

An example of the front-end code we use to make login via wallet work (via a Vanillae TS lib called “Sidekick” that talks to Superhero) can be found at this link (the login page – it will time out after a few seconds if you don’t have Superhero or it is disabled and show you more info about it):
https://aegora.jp/q
This page includes the script https://aegora.jp/r/115/sign_mess-2.js which is written against Sidekick. The backend only need generate a reasonably random message and verify the signature that is returned.

Let us know whatever questions you have. CG looks like a cool project.

4 Likes

Thank you everyone for your kind and helpful responses.

@zxq9 this is extremely helpful thank you so much for that. This will greatly speed up our work.

It’s also very heart warming to see many of you join us on Common Ground in the newly created Aeternity community. Really cool!

I’ll be back with progress updates as they arrive.

In the meantime, see you on Common Ground :sunglasses:

4 Likes

Btw it’s probably also worth to share this talk here :wink:

2 Likes

Personally, I’d be interested in exploring how our State Channel Markets prototype could be adapted to Common Ground.

The tldr; of the presentation is: State Channel Markets are real-time, trustless, decentralized chat and transaction networks. While the market hub may look like centralization, there can be any number of competing hubs, and there is no lock-in. Chat messages are ephemeral and end-to-end encrypted. Round-trip time for relayed payments is ca 15 ms + signing and network delays.

3 Likes

So happy to see this project developed on aeternity Blockchain !!! Future is community <>

1 Like

GM Fam :heart:

Want to give a little update on our progress and ask a question to the pros.

After much delay due to a big rewrite of our backend, we’re finally getting started on the integration. Our first order of business is to allow users to signup / login with the Superhero wallet. Yay. We think we’ll deploy this to production next week. A small step for us, a big step for the AEcosystem.

The step after that would be for us to show an AE-user’s .chain name in case they have. That’s where my question comes in. Can you pinpoint me to any resource that would explain how we can read someone’s .chain name if all we have is their wallet address? What’s the best way to go about this?

Thanks a lot and have a great weekend.

Florian

3 Likes

great to hear that! :slight_smile:

this is a little bit tricky because there is no 1:1 relation in that regard. users can own many different AENS names and you can have multiple AENS that all have set an account pointer for the same aeternity address (even on AENS names not owned by the user)

depending on how you want to interprete it, you would most likely have to write your own service :thinking:

my recommendation would probably be to let users set a specific pointer with a custom key for common ground, e.g. common_ground_name where a user would set the account address in the name they want to use for display in common ground. but still you would have to interprete this and maybe even let the user choose the name in case such pointer exists on different names (owned or not owned by the user).

maybe the mdw could introduce sth. like “resolve name by key and value” @sborrazas @cryptodao21ae :thinking:

2 Likes

Interesting. Super helpful response. Makes a lot of sense. Maybe the simplest way would be to list all AENS names in a drop-down for the user to choose from once they connected at least one AE wallet.

1 Like

yes that seems to a more simple way to do it. maybe you’d want to add a job that regularly checks if the account still “owns” the name (keep in mind it can also expire).

in the future, it is (hopefully from my perspective :stuck_out_tongue:) very likely that AENS names will be proxy owned by the AENS wrapping contract. so (additionally?) relying on a pointer might be better. more info about that: [Active] Wrapping AENS names into AEX-141 NFTs

this is an example query to get all names (including their pointers) owned by an account:

maybe the simplest solution is even to let the user provide the name and then perform a check against the name :thinking:

wouldn’t be automated, but would simplify stuff a little bit :sweat_smile:

3 Likes

You’re so helpful marco. Forever grateful :heart:

I’ll report back once we have the first integration live.

3 Likes

Does the superhero mobile app support login with wallet, like eg metamask on iPhone does?

With superhero wallet v2 and above there has been an in-app browser added, with which mobile login should be possible

1 Like

SH Wallet supports deep links, so there is for example way for signing messages. If you open this link on your mobile with SH Wallet app installed it should open the app with the request to sign the message.

Is the v2 already in the app stores?