Skip to content

pubky/pubky-ring

Repository files navigation

Pubky Ring

Your keychain for the Pubky ecosystem. Manage your pubkys, authorize services, and stay in control—no accounts, no passwords.

Pubky Ring is the key manager for your identity in the Pubky ecosystem. It lets you securely manage your pubkys—the public keys that power your presence across decentralized apps.

What You Can Do

  • Authorize or revoke access to services
  • Organize and sync your pubkys across devices
  • View and control active sessions
  • Stay fully self-custodial, with no accounts or tracking

Getting Started

Environment requirements

  • Node.js >= 20
  • Yarn 1.x

Installation

Clone the repository:

git clone https://github.com/pubky/pubky-ring && cd pubky-ring

Install the dependencies:

yarn install
# For iOS you may also need the following:
cd ios && pod install && cd ..

Run the Application

For iOS:

yarn ios

For Android:

yarn android

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

🔐 Verifying Releases

Ensure your app-release.apk is authentic and untampered by verifying its GPG signature and SHA256 checksum.

1. Import the Maintainer's GPG Key

gpg --import public-key.asc

2. Verify the APK Signature

gpg --verify app-release.apk.asc app-release.apk

3. Verify the Checksum

gpg --verify SHA256SUMS.asc
sha256sum -c SHA256SUMS

E2E testing (Appium + WebdriverIO)

This project includes Appium/WebdriverIO E2E tests for Android emulators and iOS simulators.

Prerequisites

  • Xcode with an iOS Simulator (e.g., "iPhone 15").
  • Android SDK with an AVD (e.g., "Pixel_7_Pro_API_35").
  • Java JDK 17+ and Node.js 18+.
  • App under test has been built or is installed in test environment (iOS simulator or AVD)

Install drivers (one-time)

yarn e2e:drivers

Run tests

  • Android:
yarn e2e:android
  • iOS:
yarn e2e:ios

Environment overrides

  • ANDROID_APP: absolute path to the .apk
  • AVD: Android Virtual Device name (e.g. Pixel_6_API_34)
  • ANDROID_DEVICE_NAME / ANDROID_PLATFORM_VERSION
  • APP_PACKAGE / APP_ACTIVITY (defaults: to.pubky.ring / to.pubkyring.MainActivity)
  • IOS_APP: absolute path to the .app
  • IOS_SIM / IOS_PLATFORM_VERSION
  • IOS_BUNDLE_ID (default: app.pubkyring)

Examples

# Android (provide APK)
ANDROID_APP=/absolute/path/app-debug.apk yarn e2e:android

# Android (attach to installed app on an emulator)
AVD=Pixel_6_API_34 yarn e2e:android

# iOS (provide .app)
IOS_APP=/absolute/path/pubkyring.app yarn e2e:ios

# iOS (attach to installed app on a simulator)
IOS_SIM="iPhone 15" yarn e2e:ios

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published