Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗QOP is a simple, minimal and secure messaging app built on top of minip2p.
Messages travel peer to peer. Identity lives on chain. A small API sponsors invitation-gated registration and later phone-approved add/remove device actions. It never holds owner secrets and does not choose pairing endpoints.
contracts/). A Solidity contract maps a permanent handle to an owner address and raw Ed25519 device keys. It is the single source of truth for who owns which handle. Registration starts invitation gated and can be opened permanently by the registration admin.api/). Verifies owner-signed EIP-712 intents and relays gas for registration and add/remove device actions. Clients still confirm account and device membership over RPC.mobile/). An Expo app that generates keys on device, registers through the API, links additional devices, resolves peers from the chain, and chats over minip2p. Each transport connection is verified against the registry with a bounded authorization cache.cli/). Links a separate device key with phone approval, then runs as the same account. Phone-composed text can be handed off to a reachable CLI over /qop/sync/1; the CLI persists it in messages.db and retries while it runs.packages/identity/). Shared key derivation, EIP-712 domains and intents, recovery key encoding, and wire codecs.packages/protocol/). Pairing codecs and the shared registry/session/chat pieces used by phone and CLI.| Path | Package | Description |
|---|---|---|
contracts/ | Foundry | QOPIdentityRegistry and its protocol tests |
api/ | @qop/api | Registration and device-action relay service (Effect, Postgres, viem) |
cli/ | @qop/cli | Phone-approved device linking and diagnostic chat |
mobile/ | mobile | Expo app (Expo Router, minip2p, Effect) |
packages/identity/ | @qop/identity | Identity primitives shared by the API, CLI, and app |
packages/protocol/ | @qop/protocol | Pairing, registry reads, and live-session authorization |
web/ | @qop/web | The qop.sh site and docs (Blume) |
Each package has its own README with details on configuration and operation.
Clone the repo, pull the contract submodules, and install dependencies:
git submodule update --init --recursive
pnpm install
Start Anvil, then deploy the registry. For local development the admin and signer may be Anvil test accounts.
anvil
REGISTRATION_ADMIN=0x... \
REGISTRATION_SIGNER=0x... \
forge script --root contracts contracts/script/DeployQOPIdentityRegistry.s.sol:DeployQOPIdentityRegistry \
--broadcast \
--private-key 0x... \
--rpc-url http://127.0.0.1:8545
Note the deployed registry address. See contracts/README.md for the full policy and deployment requirements.
Copy api/.env.example to api/.env, then set the registry address, chain ID, RPC URL, database URL, and the two private keys. REGISTRATION_PRIVATE_KEY must match the REGISTRATION_SIGNER used at deploy time. RELAYER_PRIVATE_KEY pays gas and should be a separate, funded key.
pnpm --filter @qop/api db:push
pnpm --filter @qop/api admission:create
pnpm --filter @qop/api dev
admission:create prints a single use code to hand to a user. See api/README.md for the registration flow and routes.
Copy mobile/.env.example to mobile/.env and point EXPO_PUBLIC_API_URL, EXPO_PUBLIC_RPC_URL, EXPO_PUBLIC_REGISTRY_ADDRESS, and EXPO_PUBLIC_REGISTRY_CHAIN_ID at the services above. Physical devices and emulators need addresses that can reach your development machine, so 127.0.0.1 usually does not work.
pnpm --filter mobile ios
pnpm --filter mobile android
Both commands build a native development client and connect it to Metro. See mobile/README.md for the manual verification checklist that exercises the native transport.
pnpm check # lint, package tests, and typecheck
pnpm check:contracts # forge fmt, lint, and tests
pnpm fix # apply lint and format fixes
Automated tests cover the identity library, the API, the SQL and store lifecycle in the app, and the contract. They do not exercise the native P2P transport, which needs two development builds.