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 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.
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
You can definitely count on my help and ping me anytime needed!
And of course I encourage everybody else in the community to feed Florian with the information he needs to get stuff done
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.
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.
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?
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
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
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.
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 ) 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:
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.