[Korean]
Inspiration
새로운 사람을 만나고 교류해보고 싶으신적 있으신가요?
소셜미디어가 일상의 일부가 된 현재, 퍼스널 브랜드에 대한 니즈와 자아실현 욕구는 나날이 높아지고 있습니다.
"Shall We Coffee" 는 이러한 수요를 기반으로 개인의 가치를 좀 더 실체화 된 형태로 만들 수 있는 퍼스널 토큰을 발행하고, 퍼스널 토큰을 사용하여 새로운 사람과 약속을 잡을 수 있도록 하는 매커니즘이 구현된 프로토콜입니다.
"Shall We Coffee" 이전에 오랜기간동안 Yoonsung With ☕️ 를 통해 POC를 진행한 이력이 있습니다. 이 과정에서 Yoonsung With ☕️ 를 통해 약 65회의 토큰 판매와 총 17회의 커피챗을 성사한 성과를 얻었습니다.
이 POC를 통해 사용자에게 제공해야할 가치와 우선적으로 개발해야할 MVP를 설계할 수 있었고, 이를 기반으로 "Shall we Coffee" 를 구현하게 되었습니다.
Overview
"Shall We Coffee" 는 소셜토큰을 발행하고, 사고, 판매하고, 사용할 수 있는 기능을 제공하는 프로토콜입니다. 사용자는 "Shall We Coffee"를 통해 토큰을 발행함으로서 토큰 구매자에게 간단한 대화는 물론 강의나 상담 등 사람대 사람으로 제공할 수 있는 모든 서비스를 제공할 수 있습니다.
이런 서비스 제공에 사용되는 토큰은 "Shall We Coffee"의 트랜잭션을 사용해 한번에 이더리움에서 토큰을 발행하고 Uniswap 에 리퀴디티를 제공하여 바로 구매가능한 상태로 만들어줍니다.
토큰 발행자와 만나고 싶은 사람은 웹사이트에서 발행자의 프로필을 확인하고 토큰을 구매한 다음, 토큰을 1개 사용하여 약속을 요청할 수 있습니다.
약속이 진행되고 나면, 토큰 발행자는 웹사이트를 통해 약속을 완료할 수 있습니다. 또한, 약속이 완료되면 예약에 사용된 토큰은 소각되며 자연스럽게 사용자가 발행한 토큰의 가치는 지속적으로 상승하게 됩니다.
Key Functionalities
- 사용자의 개인 소셜 토큰을 발행하고 유니스왑에 리퀴디티를 제공합니다.
- Uniswap 에 등록된 리퀴디티를 기반으로 토큰을 구매하고, 구매한 토큰으로 약속을 요청할 수 있습니다.
- 발행자는 요청된 약속을 확인하고 수락 혹은 거절 할 수 있습니다.
- 발행자는 약속 진행 후 약속을 잡는데 지불된 토큰의 일부를 약속 요청자에게 돌려줄 수 있습니다.
Key Architectural Details
- 사용자 경험을 향상시킬 수 있는 EIP를 적용하기 위해서 이더리움에서 표준 RPC를 이용해야할 필요가 있었고, web3-react와 ethers를 이용하여 이를 구현했습니다.
- IPFS 를 이용하여 별도의 서버 없이 웹사이트에 접근할 수 있도록 하였습니다.
- 기존에 이더리움상에 토큰을 발행하고, 발행한 토큰을 따로 유니스왑에 등록해야 했던 과정을 하나의 트랜잭션에 담아 사용자의 불편함을 최소화했습니다. 또한 약속을 관리할 수 있는 스마트 컨트랙트가 같이 배포되기 때문에 편의성이 더욱 증가했습니다.
Challenges and Solutions
- UX Side -기존 유저의 편의성을 위함은 물론, 토큰의 개념에 익숙지 않은 신규유저들을 위해 하나의 화면에서 모든 프로토콜을 사용할 수 있도록 했습니다.
- UX Side - 토큰을 컨트랙트에서 사용할 때 Approve Tx에 대한 이해가 어렵고, 어렵다는 인식이 있기 때문에 이를 Transaction을 발생시키지 않고 해결하도록 하였습니다.
- Dev Side - Provider 의 초기화 시점 예측의 어려움: setTimeOut 함수를 통해 초기화가 완료될 때까지 계속 확인해주었습니다.
- Dev Side - 이더리움 블록체인에서 모든 데이터를 검색하는 것이 효율성에서 문제가 있고, 원하는 값을 효율적으로 추출할 수 없었음: 향후 효율적인 타겟값 추출 및 목록화는 더그래프와 같은 데이터 파이프라인을 이용하는 방법을 통해 해결할 계획입니다.
Accomplishments
- 스마트 컨트랙트 설계 최적화를 통해 TX fee 80% 절감하였습니다.
- Proof of Concept 를 진행하면서 프로토콜의 주요 가치와 니즈를 검증했습니다.
- 개인 소셜토큰을 기반으로 다양한 토큰 전용 서비스를 제공할 수 있도록 기능을 구현하였습니다. (개인에 따라 커피를 제공할 수도, 1회의 강의를 진행하는 자유도를 가질 수 있음)
- 토큰과 수요에 따른 토큰 가격 상승을 통해 퍼스널 브랜드 가치를 실체화하였습니다.
- 중앙서버를 전혀 사용하지 않는 완전한 프로토콜을 구현했습니다.
What's next for Shall we coffee?
- 약속 관리 시스템 V2: 토큰 발행자와 토큰구매자가 더욱 쉽게 약속과 일정을 관리할 수 있도록 한 캘린더 연계 시스템. 토큰 구매자는 토큰 발행자의 캘린더를 확인하고 원하는 시간에 약속을 요청할 수 있고, 추가적으로 약속수정 요청 기능 또한 구현할 예정입니다.
- 토큰 대시보드: 토큰 발행자와 소유자가 더욱 쉽게 토큰을 관리하고 한눈에 세부정보 볼 수 있게하는 피쳐. 대시보드에서는 토큰의 현재 가격, 팔린 개수, 진행한 약속 개수 등 토큰에 대한 다양한 정보를 확인할 수 있습니다.
- 소셜토큰모델 V2: 아래에 서술한 서비스를 제공하고, 이러한 모델을 손쉽게 사용할 수 있도록 기능들을 확장할 예정입니다.
- 조합토큰: 토큰 조합을 통해 새로운 서비스를 제공하는 fungible 토큰을 생성하는 서비스입니다. 현재는 소셜토큰의 활용도가 약속예약에만 국한되 있지만, 확장모델을 통해 생성된 조합토큰으로 발행자와 구매자가 더 많은 상호작용을 할 수 있도록 할 예정입니다. (예시: 커피 토큰 두개를 조합 = 밥토큰 생성)
- 도전과제 NFT: 특정 도전과제를 달성시 해당 도전과제 NFT를 얻을 수 있는 서비스입니다. (예시: "10명의 사람과 약속을 완료하세요!" 조건: 10명의 사람과의 약속진행)
- 기념 NFT: 소셜토큰을 사용하여 해당 발행자와 처음 약속을 완료한 경우, 기념 NFT를 얻는 시스템입니다. 이를 이용해서 해당 발행자와 약속을 이행한 이력이 있는 구매자만 접근할 수 있는 콘텐츠에 접근이 가능합니다.
- 그룹 및 장소: 그룹의 생성과 그룹의 대표 소셜 토큰 생성 및 지정기능을 제공할 예정입니다. 그룹 대표 토큰은 그룹 대 개인의 만남을 갖는데 쓰일 수 있고, 그룹 내에서의 교류에서도 사용할 수 있도록 구현할 계획입니다.
- 부스팅: 프로그램 진행자가 구성한 토큰에 소액 기부를 하는 것으로, 소셜토큰의 가격을 소폭 상승시켜 프로그램을 응원할 수 있는 기능입니다. 소셜토큰의 판매현황 및 총 개수에는 변동이 없지만 풀의 ETH는 늘어나기 때문에 토큰의 가치는 상승하게 되는 구조로, 특정 발행자를 후원하는 용도로 구현할 예정입니다.
[English]
Inspiration
Have you ever wanted to meet someone new?
"Shall We Coffee" is a protocol that allows anyone to make an appointment with a new person by purchasing his/her personal social token.
Before this project, we have done POC through Yoonsung With ☕️, which had a total of 65 token sales and 17 coffee chats.
Based on this POC, we discovered the demands of many users that they also want to create their own social token and "Shall we Coffee" was born based on these desires.
Overview
"Shall We Coffee" is a protocol that provides a create/buy/sell/use social token function. This protocol enables the users to produce their own social tokens and provide corresponding services, which involve any human relationships - coffee chat, tutoring etc, to token buyers.
When users try to produce their own social tokens, they just need to click the "Create Token" button. "Shall We Coffee" will produce social tokens on Ethereum and provide liquidity on Uniswap, on behalf of the issuers, through one-click transaction. Thus the complexity of token creation process is decreased.
If one wants to meet with the issuer, he/she can check the issuer's profile on the website, purchase the social token, and use the purchased token to request an appointment with the issuer.
Once the meeting is over, the issuer can officially complete the appointment through the website and the token used for the appointment is burned so the value of the token naturally increases continuously.
Key Functionalities
- Users can create their own personal social tokens and provide liquidity to Uniswap.
- Users can purchase tokens based on the liquidity registered on Uniswap and request an appointment with the purchased token.
- Token issuer can accept the requested appointment.
- Token issuer may return part of the token paid for requesting appointment to requester after the appointment is complete.
Key Architectural Details
- To apply an EIP that can enhance the user experience, the protocol needed to use standardized RPC while using Ethereum functions, and this was implemented by using web3-react and ethers.
- Configure the website without a centralized server by using IPFS.
- Originally, social token issuers needed to deploy the token on Ethereum and register the token on Uniswap separately. This protocol has put these two processes in one transaction, thus minimized the inconvenience of the issuers. Also, the smart contract for managing the appointments is deployed along with the token, which enhances usability further.
Challenges and Solutions
- UX Side - Implemented a single-screen aesthetic to streamline the provisioning of the service, even for those unfamiliar with tokens.
- UX Side - Since the recognition toward Approve TX is 'difficult' and it is actually hard to understand for people who has no base knowledge about blockchain, the protocol enables the users to interact with token with just one TX instead of two (Buyers will just need to click "Buy Token" button, no blockchain knowledge is needed).
- Dev Side - Provider initialization time varies: used setTimeOut function to constantly check if provider is initialized or not.
- Dev Side - Inefficiency of searching the whole blockchain on Ethereum to retrieve target data: planning to resolve by using data pipeline solution(The Graph Protocol).
Accomplishments and User Benefits
- 80% reduction in TX fee by optimizing the design of transactions.
- Validated key service values and demands through the Proof of Concept.
- Implemented a complete decentralized protocol.
- Offers wide range of possibility for service customization of social tokens (Services provided through tokens can be not only coffee chats but also any actions that involves human interaction - such as personal-training!
- Can substantialize personal brand values through tokens and demanding price.
What's next for Shall we coffee?
- Appointment Managing System V2: a system connected with calendar so both issuer and buyer can manage their appointments along with their schedules. Social token buyers can check the issuer's schedule and request the appointment based on their availability. Additionally, we will add "Request reschedule" functionality.
- Token Dashboard: provides easier social token status seizing for social token holders - can check current price, sales status, number of appointments completed etc.
- Social Token Model V2: provides the services written below, and will expand the functionalities to be able to easily use such services.
- Combination Token: creates a new fungible social token, which provides a different service, by combining possessed social tokens. Currently, the usage of social token is limited to making appointments. However, the extended model will enable the issuer and buyer to have more diverse interaction. (Example: Combining two Coffee tokens create a Meal token)
- Accomplishment NFT: if the user achieves an accomplishment, user will earn corresponding accomplishment token (Example: "Complete the appointments with 10 people!" condition: meet 10 social token issuers through appointment).
- Souvenir NFT: if the buyer completes an appointment with the issuer for the first time, buyer earns the Souvenir token. Using this, buyer can access specialized contents provided by the issuer that are only available for the buyers who had completed an appointment with the issuer.
- Group: will provide functionalities for creating groups and setting & producing group representative token. Group representative token can be used both internally (within group members) and externally (with person outside of the group).


Log in or sign up for Devpost to join the conversation.