Having a token brings a community together loosely with a financial stake, but composable membership holds a community together long term with social capital. That's a lot of buzzwords, so let’s explore this in three parts:
How access, permissions, and status are the primary components of membership (and the role of tokens)
Membership in Web2 versus Web3 platforms, and why composability matters here
Designing a membership system to generate social capital
Our data and actions give us identity and relationships, but having a social graph does not give you community. Put in a Web3 context, a group of people holding or trading the same token does not mean you are a community - at best, it gives you clusters. **An actual community has fairly clear boundaries for growth (in more than a financial sense). You've probably seen some variation on the chart below...
!https://github.com/orbit-love/orbit-model
https://github.com/orbit-love/orbit-model
... where you can identify your core contributors, and try to reward or incentivize them accordingly. Pet3rpan has put this concentric community chart nicely in a Web3 context, showcasing the funnel of activities a participant might engage in during their lifecycle in a community:
!https://medium.com/1kxnetwork/how-to-grow-decentralized-communities-1bf1044924f8
https://medium.com/1kxnetwork/how-to-grow-decentralized-communities-1bf1044924f8
But just because someone has participated in any of the above events, doesn't mean they feel like they're part of the community. Even giving them tokens for their participation doesn't really move the needle.
Tokens are open primitives that membership should be built upon, and just issuing more POAPs or tokens based on events and then moving on is like distributing the raw materials for a house and expecting the people to build up a town. Without a blueprint, people will just stash the materials and leave (or sell them to someone else). In crypto, we’re supply rich, but guidance poor.
Some communities at least take the first step to have some sort of access dependent on your token activities, usually a Discord server or channel. But access is only the first step to membership. Permissions are too closely tied to access right now, and status is left as too abstract a concept.
So let's improve on the current model. Access is discovery, permissions are responsibility, status is weight. This membership funnel is shaped different from the activity funnel above, as the customizable design area gets larger the deeper you go:
!Unsupported embed
These are basic examples, but they help lay the groundwork for how each layer could be tied to different types (and combinations) of tokens. Let's look at some token design examples for each level:
Access: For the most part, ERC20's are best for access because requirements are fluid and the tokens are more liquid. Today I might require 50 tokens to join, but in the future, I may drop it to 25 or increase it to 75 based on community needs (going wide versus deep). NFTs are cultural assets, so if you use that as the gate then it'll be tough to say you need two or more to have access now. Even if you implement project derivatives, liquidity becomes fragmented and confusing. This is project-dependent though, and Creator Cabins did a great overview of some of the tradeoffs.
Permissions: I personally believe permissions should be tightly coupled to a stake. To be given the responsibility for some set of actions, there should be risk involved. Unlike access, permissions should evolve and can be revoked. If I'm making proposals, allowing staking will show my commitment and also give others the opportunity of joining my stake. This line of design can help a community better balance abuse of power and opportunities for discovery (of great new contributors).
Status: This layer has the largest area because it is tied to attributes and metadata. Status in a community has the highest amount of variance, as it will likely be event-dependent. Taking the treasury "weighted voting power" example, if you give status based on what is being voted on that highlights specific community members while also ensuring that it isn't always the participant with the most tokens has the most sway. NFTs are a great place to play with these attributes, especially through derivative and forge-based projects. To clarify, this is not the same as reputation since reputation needs to be less fluid as to not confuse people. We'll get more into that later.
Different combinations of these layers could be bundled into "roles" for easier management and assignment. I'd love to dive right into a membership system, but first we need to clear out the current mental heuristics around how Web2 "membership" works.
In Web2, membership forms around services. In Web3, services from around membership. Put simply, being a YouTube subscriber does not affect your privileges when engaging in a Twitch chat or a subreddit. This kind of membership interoperability is certainly possible in Web2, and I think Patreon was the closest to getting a hierarchical membership structure in place. We could have seen a world that looks like this:
!Unsupported embed
But obvious arguments would ensue over who owns the master API, and economic flow incentives also act as a blocker since the platform at the top of the hierarchy likely has the highest money-in/money-out flow and take-rate. So in the end we have like 7 or more different memberships to manage! No one actually wants that besides the platforms themselves.
In Web3, no one is fighting to be at the top of the membership hierarchy because the primitives (tokens) aren't owned by any one platform. Smart contracts are our APIs and we can code revenue splits right into them. If that isn't enough, we can devise governance and attribution systems over the treasury to ensure the services and tooling built around membership continuously benefits communities that rely on them. In the end, the above Web2 platforms will naturally fall lower on the hierarchy. They will be forced to fit around the composable membership systems that we all enable and create. In other words, the community is the platform:
!Unsupported embed
There's an argument to be made that in the end, apps will just be a bunch of composable components where each piece is owned by a different platform. But in the interim, it'll be Web3 communities plugging into the currently better interfaces of Web2. When planning a membership system, we'll need to think about membership as bundles of access, permission, and status across these Web2 services. If I'm a multisig member, what roles will I need across all these services and how can that be managed in a single token/membership model? To figure this out, we'd need to experiment. And to experiment, we need social capital.
We've defined the components of membership and situated them within the Web2 and Web3 context. Now, let's have fun designing a system that could actually go into implementation. We'll define social capital as building an allowance for trust, experimentation, and flexibility within a community. This means having a membership system that improves ownership of decisions and prevents a social fork. For now, my guess is there are three main steps to execute membership and generate this new capital:
Define Roles: Roles are bundles of the different layers of membership and are tied to specific participant personas. There are likely hundreds of combinations (especially if you layer token types on top), but some immediate roles that come to mind are:
Low Access (ERC20) + Low Permissions (ERC20 Stake) = new member
High Permissions (ERC20 Stake) + High Status (NFT) = long time contributor
High Access (NFT) + High Status (NFT) = subject matter expert
High Access (ERC20) + High Permissions (ERC20 Stake) + High Status (NFT) = founding member
Doing this well opens up a pathway for growth and also clarity for all members. This starts to give us history too, as I can clearly see how a community has matured by its role definitions and distribution (much more so than if I just look at the token price).
Specify Incentivizes: Pet3rpan mentioned in the article linked earlier that trust and engagement are key to participation. Financial incentives are a great starting point - if you airdropped me $1000 of your community's tokens, I'd definitely come to take a look and see what I can help with. But if these drops/bounties are filtered by role or membership history, we can be much more flexible with asks and rewards and I'd likely feel more fulfilled. This is the difference between me tackling a data bounty as a nobody versus as a Dune Wizard.
This could also look like a hackathon where teams are built based on role/membership history, such that newer members are matched with older members. Or imagine if hackathon bounties rewarded community roles instead of just $$$, I think we'd end up seeing an even larger diversity of projects and teams in hackathons than we do today.
Also, I cannot stress enough the importance of history here. Membership + Identity + Relationships will probably be the best proxy for a reputation score, which opens up the path to more creatively weighted incentives.
Hopefully, this system helps show how much we can bring a community together while experimenting by using membership built off of tokens. I know for some people this is all still too fluffy, so I plan on doing data-driven case studies to better inform this kind of membership system in the future (and to try to be more quantitative about social capital). Some communities I'm interested in studying under this lens are Yearn, Blitmaps, and Superfluid - but if you have other case studies that come to mind, please do let me know.
Composable membership shapes more than just communities, it will shape ecosystems and platforms as well. In crypto, we're all building platforms that give communities the tooling for implementation, visibility, collaboration, and much more. Ecosystems are forming around metadata already, and this will force a reorganization of Web2 platforms to provide a much more open surface to be built upon.
Mirror is one platform trying to improve the tooling for communities to implement a rewarding membership system:
!Unsupported embed
Seed Club is a good example of the model above, where they deploy ERC20 tokens for specific communities and causes, and once members are more defined they move on to specialized token distribution methods such as the token race for engaging the community and adding new cohorts. I think there is a lot more we all can do to standardize the membership implementation process laid out in this article, using Mirror and ecosystem tooling.
But none of what I've written about can sustainably happen unless communities take their thinking around membership more seriously (and that goes for me too). If any of this interests you, please reach out so that we can build out this future together. My twitter DMs are always open! 🙂
Having a token brings a community together loosely with a financial stake, but composable membership holds a community together long term with social capital. That's a lot of buzzwords, so let’s explore this in three parts:
How access, permissions, and status are the primary components of membership (and the role of tokens)
Membership in Web2 versus Web3 platforms, and why composability matters here
Designing a membership system to generate social capital
Our data and actions give us identity and relationships, but having a social graph does not give you community. Put in a Web3 context, a group of people holding or trading the same token does not mean you are a community - at best, it gives you clusters. **An actual community has fairly clear boundaries for growth (in more than a financial sense). You've probably seen some variation on the chart below...
!https://github.com/orbit-love/orbit-model
https://github.com/orbit-love/orbit-model
... where you can identify your core contributors, and try to reward or incentivize them accordingly. Pet3rpan has put this concentric community chart nicely in a Web3 context, showcasing the funnel of activities a participant might engage in during their lifecycle in a community:
!https://medium.com/1kxnetwork/how-to-grow-decentralized-communities-1bf1044924f8
https://medium.com/1kxnetwork/how-to-grow-decentralized-communities-1bf1044924f8
But just because someone has participated in any of the above events, doesn't mean they feel like they're part of the community. Even giving them tokens for their participation doesn't really move the needle.
Tokens are open primitives that membership should be built upon, and just issuing more POAPs or tokens based on events and then moving on is like distributing the raw materials for a house and expecting the people to build up a town. Without a blueprint, people will just stash the materials and leave (or sell them to someone else). In crypto, we’re supply rich, but guidance poor.
Some communities at least take the first step to have some sort of access dependent on your token activities, usually a Discord server or channel. But access is only the first step to membership. Permissions are too closely tied to access right now, and status is left as too abstract a concept.
So let's improve on the current model. Access is discovery, permissions are responsibility, status is weight. This membership funnel is shaped different from the activity funnel above, as the customizable design area gets larger the deeper you go:
!Unsupported embed
These are basic examples, but they help lay the groundwork for how each layer could be tied to different types (and combinations) of tokens. Let's look at some token design examples for each level:
Access: For the most part, ERC20's are best for access because requirements are fluid and the tokens are more liquid. Today I might require 50 tokens to join, but in the future, I may drop it to 25 or increase it to 75 based on community needs (going wide versus deep). NFTs are cultural assets, so if you use that as the gate then it'll be tough to say you need two or more to have access now. Even if you implement project derivatives, liquidity becomes fragmented and confusing. This is project-dependent though, and Creator Cabins did a great overview of some of the tradeoffs.
Permissions: I personally believe permissions should be tightly coupled to a stake. To be given the responsibility for some set of actions, there should be risk involved. Unlike access, permissions should evolve and can be revoked. If I'm making proposals, allowing staking will show my commitment and also give others the opportunity of joining my stake. This line of design can help a community better balance abuse of power and opportunities for discovery (of great new contributors).
Status: This layer has the largest area because it is tied to attributes and metadata. Status in a community has the highest amount of variance, as it will likely be event-dependent. Taking the treasury "weighted voting power" example, if you give status based on what is being voted on that highlights specific community members while also ensuring that it isn't always the participant with the most tokens has the most sway. NFTs are a great place to play with these attributes, especially through derivative and forge-based projects. To clarify, this is not the same as reputation since reputation needs to be less fluid as to not confuse people. We'll get more into that later.
Different combinations of these layers could be bundled into "roles" for easier management and assignment. I'd love to dive right into a membership system, but first we need to clear out the current mental heuristics around how Web2 "membership" works.
In Web2, membership forms around services. In Web3, services from around membership. Put simply, being a YouTube subscriber does not affect your privileges when engaging in a Twitch chat or a subreddit. This kind of membership interoperability is certainly possible in Web2, and I think Patreon was the closest to getting a hierarchical membership structure in place. We could have seen a world that looks like this:
!Unsupported embed
But obvious arguments would ensue over who owns the master API, and economic flow incentives also act as a blocker since the platform at the top of the hierarchy likely has the highest money-in/money-out flow and take-rate. So in the end we have like 7 or more different memberships to manage! No one actually wants that besides the platforms themselves.
In Web3, no one is fighting to be at the top of the membership hierarchy because the primitives (tokens) aren't owned by any one platform. Smart contracts are our APIs and we can code revenue splits right into them. If that isn't enough, we can devise governance and attribution systems over the treasury to ensure the services and tooling built around membership continuously benefits communities that rely on them. In the end, the above Web2 platforms will naturally fall lower on the hierarchy. They will be forced to fit around the composable membership systems that we all enable and create. In other words, the community is the platform:
!Unsupported embed
There's an argument to be made that in the end, apps will just be a bunch of composable components where each piece is owned by a different platform. But in the interim, it'll be Web3 communities plugging into the currently better interfaces of Web2. When planning a membership system, we'll need to think about membership as bundles of access, permission, and status across these Web2 services. If I'm a multisig member, what roles will I need across all these services and how can that be managed in a single token/membership model? To figure this out, we'd need to experiment. And to experiment, we need social capital.
We've defined the components of membership and situated them within the Web2 and Web3 context. Now, let's have fun designing a system that could actually go into implementation. We'll define social capital as building an allowance for trust, experimentation, and flexibility within a community. This means having a membership system that improves ownership of decisions and prevents a social fork. For now, my guess is there are three main steps to execute membership and generate this new capital:
Define Roles: Roles are bundles of the different layers of membership and are tied to specific participant personas. There are likely hundreds of combinations (especially if you layer token types on top), but some immediate roles that come to mind are:
Low Access (ERC20) + Low Permissions (ERC20 Stake) = new member
High Permissions (ERC20 Stake) + High Status (NFT) = long time contributor
High Access (NFT) + High Status (NFT) = subject matter expert
High Access (ERC20) + High Permissions (ERC20 Stake) + High Status (NFT) = founding member
Doing this well opens up a pathway for growth and also clarity for all members. This starts to give us history too, as I can clearly see how a community has matured by its role definitions and distribution (much more so than if I just look at the token price).
Specify Incentivizes: Pet3rpan mentioned in the article linked earlier that trust and engagement are key to participation. Financial incentives are a great starting point - if you airdropped me $1000 of your community's tokens, I'd definitely come to take a look and see what I can help with. But if these drops/bounties are filtered by role or membership history, we can be much more flexible with asks and rewards and I'd likely feel more fulfilled. This is the difference between me tackling a data bounty as a nobody versus as a Dune Wizard.
This could also look like a hackathon where teams are built based on role/membership history, such that newer members are matched with older members. Or imagine if hackathon bounties rewarded community roles instead of just $$$, I think we'd end up seeing an even larger diversity of projects and teams in hackathons than we do today.
Also, I cannot stress enough the importance of history here. Membership + Identity + Relationships will probably be the best proxy for a reputation score, which opens up the path to more creatively weighted incentives.
Hopefully, this system helps show how much we can bring a community together while experimenting by using membership built off of tokens. I know for some people this is all still too fluffy, so I plan on doing data-driven case studies to better inform this kind of membership system in the future (and to try to be more quantitative about social capital). Some communities I'm interested in studying under this lens are Yearn, Blitmaps, and Superfluid - but if you have other case studies that come to mind, please do let me know.
Composable membership shapes more than just communities, it will shape ecosystems and platforms as well. In crypto, we're all building platforms that give communities the tooling for implementation, visibility, collaboration, and much more. Ecosystems are forming around metadata already, and this will force a reorganization of Web2 platforms to provide a much more open surface to be built upon.
Mirror is one platform trying to improve the tooling for communities to implement a rewarding membership system:
!Unsupported embed
Seed Club is a good example of the model above, where they deploy ERC20 tokens for specific communities and causes, and once members are more defined they move on to specialized token distribution methods such as the token race for engaging the community and adding new cohorts. I think there is a lot more we all can do to standardize the membership implementation process laid out in this article, using Mirror and ecosystem tooling.
But none of what I've written about can sustainably happen unless communities take their thinking around membership more seriously (and that goes for me too). If any of this interests you, please reach out so that we can build out this future together. My twitter DMs are always open! 🙂
Assign Roles: This step is more technically difficult than the others, given the challenge of plugging membership systems into existing platforms. I think this is similar to the integration problems that any wallet aggregator already faces, for example, Zapper's protocol requests. Integrating into existing Web2 platforms shouldn't be difficult, but as more Web3 platforms are built the composability will be difficult to manage.
But as long as we have an identity solution (connecting addresses to user metadata across platforms) and a membership solution (managing roles and tokens intuitively), I think we'll be able to tackle the platform integration problem elegantly. Besides, building the first two will take the ecosystem the next six months anyway.
Assign Roles: This step is more technically difficult than the others, given the challenge of plugging membership systems into existing platforms. I think this is similar to the integration problems that any wallet aggregator already faces, for example, Zapper's protocol requests. Integrating into existing Web2 platforms shouldn't be difficult, but as more Web3 platforms are built the composability will be difficult to manage.
But as long as we have an identity solution (connecting addresses to user metadata across platforms) and a membership solution (managing roles and tokens intuitively), I think we'll be able to tackle the platform integration problem elegantly. Besides, building the first two will take the ecosystem the next six months anyway.
Pantera:加密资产将重塑全球宏观贸易格局
全球性宏观贸易的领路人区块链是实现全球宏观贸易的基石。 以传统金融市场中 USD/JPY 汇率为例,其过去的 35 年间始终保持在 120 ± 20 范围内波动。有着 35 年交易经验的研究员在汇率的起伏中如履薄冰,最终却诧异地发现今天的汇率又回到了 1987 年他刚入行时的位置 -- 128.38。汇率的兜兜转转与再度回归让 USD/JPY 交易员的经年努力显得徒劳无功。反观当下,区块链正在改变全球宏观贸易的格局 ——— 假如每个拥有智能手机的人都会在十年内使用区块链,链上用户将增加至 35 亿人次。 这也就意味着我们将再无可能以 38342 美元 / BTC 的「便宜」价格购买比特币。 这正是大部分「重蹈覆辙」的宏观交易者中意比特币或区块链的原因。虽然和传统领域研究的概念并无二致,但实际上区块链的出现是要在更高维度优化整个世界的运行方式。 现在,区块链风险交易甚至开辟了全球宏观角度。例如,做多 Circle 股权是对冲利率上升的一个好办法。 Circle 在 USDC 稳定币上赚取浮动资金。 利率上升带动收益上升,不失为一种很好的反周期投资手段。 另一个很酷的事实是,DeFi...
FTX深度研究:这几点让区块链游戏比传统游戏更加好玩
一、游戏为什么好玩儿 要判断一款区块链游戏是否好玩,我们首先要对一款“好玩的游戏”下定义。但定义的障碍是:每个人的情况都不一样,每一个游戏玩家都是具有不同需求和动机的个体。游戏设计师 Nicole Lazzaro 在《我们为什么玩游戏:玩家情感体验向的四个关键》 中写明了人们玩电子游戏的四个首要原因: 1、内在体验: 我们玩电子游戏是为了产生新的想法和感受。忘记烦恼,用无聊换取快乐,这种感觉真好。回想起那些快乐的时间,是某个下雪天连续玩了 8 小时最爱的单机游戏,是某个与朋友一起玩多人游戏的夏天,甚至是在排队等候时玩的无脑 App 游戏。电子游戏就像一本书、一部电影或电视剧,但游戏比以上媒体更具备互动性,它将你的意识投射到了另一个维度。 2、挑战与成就感: 人们还在电子游戏中进行有意义的挑战——追逐比之前更高的分数。通过 100 多个小时的 RPG(角色扮演游戏)或在特定竞争游戏中获得前 1000 的排名,这些挑战给人带来的成就感比从外部活动中获得的成就感更大。一款好的游戏可以提供一种挑战感,而这种挑战感与现实世界所呈现的真实或感知风险不同。 3、沉浸感: 与内在体验略微不同,沉...
V神:ZK-EVMs的类型
最近有许多「ZK-EVM」项目高调发布公告。Polygon 开放了他们的 ZK-EVM 项目,ZKSync 发布了他们的 ZKSync 2.0 计划,相对较新的 Scroll 最近也发布了他们的 ZK-EVM。还有来自隐私和拓展探索的团队、Nicolas Liochon 等人的团队的持续努力,从 EVM 到 Starkware 的 zk 友好语言 Cairo 的 alpha 编译器,当然有一些项目我会错过。 所有这些项目的核心目标都是相同的:使用 ZK-SNARK 技术来对类似以太坊的交易执行进行加密证明,要么让验证以太坊链本身变得更容易,要么构建与以太坊提供的内容 (接近) 相同但可扩展性更强的 zk rollup。但这些项目之间存在着微妙的差异,以及它们在实用性和速度之间的权衡。这篇文章将尝试描述 EVM 等价性的不同「类型」的分类,以及尝试实现每种类型的好处和成本。概述 (图表形式)类型 1(完全等效于以太坊)类型 1 ZK - EVM 力求完全和毫不妥协的等效于以太坊。它们不改变以太坊系统的任何部分,以使生成证明更容易。它们不会取代哈希、状态树、事务树、预编译或任何其他共...
Pantera:加密资产将重塑全球宏观贸易格局
全球性宏观贸易的领路人区块链是实现全球宏观贸易的基石。 以传统金融市场中 USD/JPY 汇率为例,其过去的 35 年间始终保持在 120 ± 20 范围内波动。有着 35 年交易经验的研究员在汇率的起伏中如履薄冰,最终却诧异地发现今天的汇率又回到了 1987 年他刚入行时的位置 -- 128.38。汇率的兜兜转转与再度回归让 USD/JPY 交易员的经年努力显得徒劳无功。反观当下,区块链正在改变全球宏观贸易的格局 ——— 假如每个拥有智能手机的人都会在十年内使用区块链,链上用户将增加至 35 亿人次。 这也就意味着我们将再无可能以 38342 美元 / BTC 的「便宜」价格购买比特币。 这正是大部分「重蹈覆辙」的宏观交易者中意比特币或区块链的原因。虽然和传统领域研究的概念并无二致,但实际上区块链的出现是要在更高维度优化整个世界的运行方式。 现在,区块链风险交易甚至开辟了全球宏观角度。例如,做多 Circle 股权是对冲利率上升的一个好办法。 Circle 在 USDC 稳定币上赚取浮动资金。 利率上升带动收益上升,不失为一种很好的反周期投资手段。 另一个很酷的事实是,DeFi...
FTX深度研究:这几点让区块链游戏比传统游戏更加好玩
一、游戏为什么好玩儿 要判断一款区块链游戏是否好玩,我们首先要对一款“好玩的游戏”下定义。但定义的障碍是:每个人的情况都不一样,每一个游戏玩家都是具有不同需求和动机的个体。游戏设计师 Nicole Lazzaro 在《我们为什么玩游戏:玩家情感体验向的四个关键》 中写明了人们玩电子游戏的四个首要原因: 1、内在体验: 我们玩电子游戏是为了产生新的想法和感受。忘记烦恼,用无聊换取快乐,这种感觉真好。回想起那些快乐的时间,是某个下雪天连续玩了 8 小时最爱的单机游戏,是某个与朋友一起玩多人游戏的夏天,甚至是在排队等候时玩的无脑 App 游戏。电子游戏就像一本书、一部电影或电视剧,但游戏比以上媒体更具备互动性,它将你的意识投射到了另一个维度。 2、挑战与成就感: 人们还在电子游戏中进行有意义的挑战——追逐比之前更高的分数。通过 100 多个小时的 RPG(角色扮演游戏)或在特定竞争游戏中获得前 1000 的排名,这些挑战给人带来的成就感比从外部活动中获得的成就感更大。一款好的游戏可以提供一种挑战感,而这种挑战感与现实世界所呈现的真实或感知风险不同。 3、沉浸感: 与内在体验略微不同,沉...
V神:ZK-EVMs的类型
最近有许多「ZK-EVM」项目高调发布公告。Polygon 开放了他们的 ZK-EVM 项目,ZKSync 发布了他们的 ZKSync 2.0 计划,相对较新的 Scroll 最近也发布了他们的 ZK-EVM。还有来自隐私和拓展探索的团队、Nicolas Liochon 等人的团队的持续努力,从 EVM 到 Starkware 的 zk 友好语言 Cairo 的 alpha 编译器,当然有一些项目我会错过。 所有这些项目的核心目标都是相同的:使用 ZK-SNARK 技术来对类似以太坊的交易执行进行加密证明,要么让验证以太坊链本身变得更容易,要么构建与以太坊提供的内容 (接近) 相同但可扩展性更强的 zk rollup。但这些项目之间存在着微妙的差异,以及它们在实用性和速度之间的权衡。这篇文章将尝试描述 EVM 等价性的不同「类型」的分类,以及尝试实现每种类型的好处和成本。概述 (图表形式)类型 1(完全等效于以太坊)类型 1 ZK - EVM 力求完全和毫不妥协的等效于以太坊。它们不改变以太坊系统的任何部分,以使生成证明更容易。它们不会取代哈希、状态树、事务树、预编译或任何其他共...
Share Dialog
Share Dialog

Subscribe to LAO

Subscribe to LAO
<100 subscribers
<100 subscribers
No activity yet