AFK-AlignedFamKernel / afk_monorepo

AFK: Aligned Fam Kernel - Monorepo
https://afk-community.xyz
MIT License
15 stars 37 forks source link
bitcoin btc cashu degen ethereum nostr social starknet web3 zk
afk_aligned_fam_kernel logo

Starknet Test Workflow Status

Built with React Native

Website | Telegram | Twitter

Overview

Decentralized social built with Nostr and powered by Starknet account abstraction.

Origin story

The name "Aligned Fam Kernel" is inspired by our vision to align the web3 family together, in one Social graph.

We build and fight together, not against. What if the treasure are the friends we made along the way? Then A decentralized social network should be a treasure trove of memories and connections!

Yes! This is what social networks should be about. A place where you can be yourself, express your thoughts and feelings, and connect with others.

Freedom requires censorship resistance, and Nostr provides exactly that.

Contribute

Register to Only Dust to get rewarded for your contributions.

Tech stack:

Monorepo

We use Turborepo for the monorepo.

Apps:

Packages:

Roadmap

MVP

Now

Architecture

Tips

There are two alternatives: WalletConnect, one which expects Nostr users to set up oridinary Starknet wallet like Argent or Braavos, and so called SocialPay which uses custom Account Abstraction contract based on bip340 signature scheme (Nostr native).

Wallet Connect

Tip to a recipient that never accepted the tip and don't have an account on SN
sequenceDiagram
    actor Alice
    actor Bob
    participant backend as Backend
    participant transfer as Deposit Contract
    participant erc20 as ERC20

    Note over Alice,erc20: Alice tip is escrowed by the Deposit Contract
    activate Alice
    Alice->>erc20: approve(Deposit Contract, x)
    Alice->>transfer: transfer(Bob Nostr Address, x)
    transfer->>erc20: transferFrom(Alice, Deposit Contract, x)
    transfer->>Alice: deposit_id
    deactivate Alice

    Note over Alice,erc20: Bob claims the tip with his Nostr identity
    activate Bob
    Bob->>backend: claim(deposit_id)
    Note right of Bob: deposit_id is signed<br/> with Nostr key
    backend->>transfer: claim(deposit_id)
    transfer->>erc20: transferFrom(Transfer Contract, Bob, x)
    deactivate Bob
Tip to a recipient that earlier accepted the tip
sequenceDiagram
    actor Alice
    participant transfer as Deposit Contract
    participant erc20 as ERC20

    activate Alice
    Alice->>erc20: approve(Deposit Contract, x)
    Alice->>transfer: transfer(Bob Nostr Address, x)
    Note left of transfer: Deposit Contract knows<br/> Bob's SN address
    transfer->>erc20: transferFrom(Alice, Bob, x)
    deactivate Alice

SocialPay

Alice sends tokens to Bob
sequenceDiagram
    actor Alice
    actor Bob
    participant SocialPay gateway
    participant Starknet Node
    participant Alice Account
    participant STRK Token

    Alice->>SocialPay gateway: @AFK send 10 STRK to @bob
    activate SocialPay gateway
    SocialPay gateway->>Starknet Node: SocialPay transaction
    Starknet Node->>Alice Account: SocialPay handler
    Alice Account->>STRK Token: transfer
    Starknet Node->>SocialPay gateway: SocialPay transaction complete
    SocialPay gateway->>Bob: @bob you just received 10 STRK from @alice
    SocialPay gateway->>Alice: @alice transfer of 10 STRK to @bob is complete
    deactivate SocialPay gateway

Modules

Onchain The onchain components of the project are implemented as a suite of Starknet smart contracts. ### Build To build the project, run: ```bash scarb build ``` ### Test To test the project, run: ```bash snforge test ```

Mobile

The AFK Mobile app is built with React-native & Expo. Current version

Pick an issue with the labels "mobile" to start work on React-native and contribute!

Test

To test the mobile app, run:

cd apps/mobile
pnpm install
pnpm start

Select Expo web, Android or IOS. You can scan it with Expo GO on your phone.

Resources

Fork

We build into the Joyboy repo here from the Exploration team:

[Exploration team repo]

Exploration_Team

AFK Aligned Fam Kernel is born from this open source project.

Now we keep building and move forward!

Contributors ✨

Thanks goes to these wonderful people (emoji key):

MSG
MSG

πŸ“–
Adeyemi Gbenga
Adeyemi Gbenga

πŸ’»
BlackStarkGoku
BlackStarkGoku

πŸ’»
Abdulhakeem Abdulazeez Ayodeji
Abdulhakeem Abdulazeez Ayodeji

πŸ’»
Fishon Amos
Fishon Amos

πŸ’»
Lindsay Morales
Lindsay Morales

πŸ’»
Nnaji Benjamin
Nnaji Benjamin

πŸ’»
Bhavya Gosai
Bhavya Gosai

πŸ’»
Yusuf Habib
Yusuf Habib

πŸ’»
Isaac Onyemaechi Ugwu
Isaac Onyemaechi Ugwu

πŸ’»
Oche
Oche

πŸ’»
Poulav Bhowmick
Poulav Bhowmick

πŸ’»
Lau Chaves
Lau Chaves

πŸ’»
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!