Skip to content

soramitsu/fearless-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,426 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Fearless Wallet Android

Google Play Android CI

logo

About

Fearless Wallet is a mobile wallet designed for the decentralized future on the Kusama network, with support on iOS and Android platforms. The best user experience, fast performance, and secure storage for your accounts. Development of Fearless Wallet is supported by Kusama Treasury grant.

Roadmap

Fearless Wallet roadmap is available for everyone: roadmap link

Dev Status

Track features development: board link

Architecture & Current State

  • Architecture overview: see docs/ARCHITECTURE.md for module layout, layers, and flows.
  • Module map: see docs/MODULES.md for a quick feature-by-feature guide.
  • Current state: see docs/CURRENT_STATE.md for supported ecosystems, integrations, and TODO hotspots.
  • Status snapshot: see docs/status.md for health, risks, and what’s incomplete.
  • Roadmap: see docs/roadmap.md for prioritized, actionable tasks.
  • Release process: see docs/releases/PROCESS.md for beta → stable steps and checklists.

How to build

To build Fearless Wallet Android project, you need to provide several keys either in environment variables or in local.properties file:

Moonpay properties

MOONPAY_TEST_SECRET=stub
MOONPAY_PRODUCTION_SECRET=stub

Note, that with stub keys buy via moonpay will not work correctly. However, other parts of the application will not be affected.

X1 plugin

X1 is a plugin which is embedded into webView. It requires url and id for launching.

X1_ENDPOINT_URL_RELEASE
X1_WIDGET_ID_RELEASE

X1_ENDPOINT_URL_DEBUG
X1_WIDGET_ID_DEBUG

Ethereum properties

Set of params required to deliver Ethereum connection

// Ethereum blast api nodes keys
FL_BLAST_API_ETHEREUM_KEY
FL_BLAST_API_BSC_KEY
FL_BLAST_API_SEPOLIA_KEY
FL_BLAST_API_GOERLI_KEY
FL_BLAST_API_POLYGON_KEY

// Ethereum history providers api keys
FL_ANDROID_ETHERSCAN_API_KEY
FL_ANDROID_BSCSCAN_API_KEY
FL_ANDROID_POLYGONSCAN_API_KEY

Local Validation

Run static analysis, unit tests, lint, and set up Android SDK packages:

bash scripts/validate-local.sh

Manual equivalents if you prefer:

./gradlew detektAll
./gradlew runTest
./gradlew :app:lint

Prerequisites: JDK 21 (Temurin/Adoptium) and Android SDK with API 35 + build-tools 35.0.0. The script will try to locate ANDROID_SDK_ROOT and install missing packages if sdkmanager is available.

Use fearless-utils-Android (local or remote source dependency)

The build now prefers a local checkout of fearless-utils-Android. By default it looks for ../fearless-utils-Android, or you can override it with FEARLESS_UTILS_PATH:

export FEARLESS_UTILS_PATH=/absolute/path/to/fearless-utils-Android
./gradlew :app:assembleDebug

Gradle includes the local project via a composite build and substitutes jp.co.soramitsu.fearless-utils:fearless-utils automatically.
If no local checkout is found and you need to build from source, set USE_REMOTE_UTILS=true (env var or -PUSE_REMOTE_UTILS=true) and Gradle will fetch https://github.com/soramitsu/fearless-utils-Android instead.
Prereqs for building the utils from source: NDK r28 (android-ndk-r28 / 28.0.x) and a Rust toolchain on PATH (rustup, cargo).

Rebuild libsodium with 16 KB alignment

We vendor libsodium sources under third_party/libsodium and ship aligned binaries under app/src/main/jniLibs.
If you need to refresh them (e.g., after pulling upstream changes), run:

ANDROID_NDK_HOME=/Users/<you>/Library/Android/sdk/ndk/28.0.12674087 \
./scripts/build-libsodium.sh

The script rebuilds libsodium.so for arm64-v8a, armeabi-v7a, x86, and x86_64 with the Google Play-required -Wl,-z,common-page-size=4096 -Wl,-z,max-page-size=16384 flags and copies them into app/src/main/jniLibs.

Contributing

  • Contributor Guide: see AGENTS.md for project layout, commands, and conventions.
  • Process & community details: see CONTRIBUTING.md.

License

Fearless Wallet Android is available under the Apache 2.0 license. See the LICENSE file for more info.

About

Fearless Wallet is a mobile wallet designed for the decentralized future on the Kusama and Polkadot networks.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages