feat: add profile and contacts fetching from pubky#824
feat: add profile and contacts fetching from pubky#824ben-kaufman wants to merge 62 commits intomasterfrom
Conversation
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
Create Profile flow testing
1. Create profile - OK. 2. Edit / Delete profile
Screen.Recording.2026-04-10.at.10.54.33.mov
Screen.Recording.2026-04-10.at.11.05.22.mov
Screen.Recording.2026-04-10.at.11.07.26.mov3. Add contact
Screen.Recording.2026-04-10.at.11.34.19.mov
Screen.Recording.2026-04-10.at.12.00.12.mov4. Edit / Delete contact
|
|
Same pubky after delete is expected since we use deterministic derivation based on the seed. So that's the expected behavior there. |
|
No I think the warning makes sense, it deletes the profile, but not the key to it, maybe can remove the word "permenantly" |
Hm, it's also not like the profile is entirely deleted. From what I see only profile details (bio, links, tags) are deleted but the contacts are preserved. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@piotr-iohk ah yes I missed that, fixed |
|
Additional observation (on 1e38929): 1.
Expected:
Actual:
2. It would be great if we could have same behavior on pubky validation when adding contacts (currently differs on iOS - validation on pubky input vs Android - validation after taping add, on Android also subsequent Retry button does not work). It would make things consistent + easier for e2e tests. 🙏 |
|
About 1, agree it makes sense, but backup and restore should ideally be done in a separate PR since this is already too large and they are a separate area of work. Not sure I understood what you refer to in 2, can you please explain? |
|
Sorry - I've added video on iOS for 2nd point: synonymdev/bitkit-ios#476 (comment) |
Made-with: Cursor
piotr-iohk
left a comment
There was a problem hiding this comment.
I think this is mostly good functionally. There are some UI / Figma mismatches that we can clean up in a follow-up. We still need more testing before we call the feature done, but LGTM to merge this branch.
This comment was marked as duplicate.
This comment was marked as duplicate.
Failed testing this scenario Edit: As far as I can see, it is not implemented, could be addressed to other PR Screen_recording_20260420_135248.webm |
There was a problem hiding this comment.
✅ Sign-in with Pubky ring
✅ Copy contact key
✅ Pubky app data imported successfully
✅ Add contact from drawer option
- Couldn't test create account by Bitkit (home gate endpoint not available)
- Reset wallet -> restore -> Is not restoring the profile
- Expected copy the profile key on QR code click
- Expected decode the profile key when pasting in home
|
Restore will be handled in a following PR.
Can you please explain what you meant in these? |
Screen_recording_20260421_064459.webm
|



Integrates Pubky decentralized identity into Bitkit, allowing users to create a Bitkit-managed profile or connect via Pubky Ring authentication. Once connected, the user's profile name and avatar appear on the home screen header, a full profile page shows their bio, links, tags, and shareable QR code, and a contacts section lists people they follow on the Pubky network.
Description
pubkyauth://)onboarding
restoration fails
pubkyauth://URLs from QR scans and deep links, biometric auth before approval, three-state sheet (authorize → authorizing → success)PubkyService— service layer wrappingbitkit-core(auth relay, PKDNS file fetching, key derivation, homeserver operations) andpaykit(session management)PubkyRepo— manages auth state, session lifecycle, key derivation, profile creation/editing, contact CRUD, homeserver file operations, and auth approvalPubkyProfileDatabackward-compatible decoding —tagsfield defaults to empty array when missing from JSON (older profiles, other clients)bitkit-coreto v0.1.56 — adds key derivation, homeserver session operations, auth approval FFI functionsKey new files
services/PubkyService.ktrepositories/PubkyRepo.ktmodels/PubkyProfile.ktmodels/PubkyAuthRequest.ktui/components/CenteredProfileHeader.ktui/components/ProfileEditForm.ktui/components/AddLinkSheet.ktui/components/AddTagSheet.ktui/screens/profile/PubkyChoiceScreen.ktui/screens/profile/CreateProfileScreen.ktui/screens/profile/EditProfileScreen.ktui/screens/profile/PayContactsScreen.ktui/screens/profile/PubkyAuthApprovalSheet.ktui/screens/contacts/AddContactScreen.ktui/screens/contacts/EditContactScreen.ktui/screens/contacts/ContactImportOverviewScreen.ktui/screens/contacts/ContactImportSelectScreen.kttests/PubkyProfileDataTest.kttests/PubkyAuthRequestTest.ktQA Notes
pubkyauth://QR code → shows approval sheet with permissions → biometric → authorize → successpubkyauth://deep link → same approval flow