MCPcopy Index your code
hub / github.com/Samourai-Wallet/samourai-wallet-android

github.com/Samourai-Wallet/samourai-wallet-android @0.99.93

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.99.93 ↗ · + Follow
2,972 symbols 11,315 edges 243 files 192 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Build Status

Samourai Wallet

Features:

Samourai Wallet features list

Build:

Import as Android Studio project. Should build "as is". PGP signed tagged releases correspond to builds that were issued via Google Play.

BIP44:

Samourai implementation based on original BIP, extends bitcoinj.

BIP47:

Samourai implementation based on original BIP by Justus Ranvier. Extends BIP44 implementation (above). Further modifications have been made to incorporate Segwit addresses into BIP47.

Generic source code for BIP47.

BIP47 test vectors

BIP49 (Segwit):

Samourai P2SH-P2WPKH implementation based on original BIP by Daniel Weigl and includes support for BIP49-specific XPUBs: YPUB.

BIP69:

Samourai implementation based on original BIP by Kristov Atlas.

BIP84 (Segwit):

Samourai implementation based on original BIP by Pavol Rusnak.

BIP125 (Replace-by-fee, RBF):

Samourai implementation based on original BIP by David A. Harding and Peter Todd.

BIP141 (Segwit):

Samourai spends to bech32 addresses P2WPKH based on original BIP by Eric Lombrozo, Johnson Lau and Pieter Wuille.

BIP173 (Segwit):

Samourai implementation based on original BIP by Pieter Wuille and Greg Maxwell.

Spending:

Samourai spends include the possibility of including custom fees as well as the use of batch spending (build up a list of batched outputs for grouped spend and fee savings).

Ricochet:

Samourai implementation of multi-hop spend designed to outrun the baying pack of #KYCRunningDogs.

Ricochet using nLockTime (staggered) will spread out hops over different blocks and make sure that hops do not appear all at once in the mempool.

STONEWALL:

STONEWALL spend is designed to increase the number of combinations between inputs and outputs (transaction entropy). It replaces the previously used BIP126. The objective is to obtain a positive entropy score using Boltzmann evaluation of the transaction.

Stowaway:

A Stowaway spend, also implemented as PayJoin, is a collaborative-spend carried out with another user. UTXOs are joined and the spend amount is cloaked. It is based on an idea by Gregory Maxwell.

Tor:

Samourai indicates whether or not connections are being routed via Tor Socks5 proxy (uses Orbot).

TestNet3:

MainNet/TestNet selection is displayed when sideloading a new installation. To switch networks, make a backup of your current wallet, uninstall/reinstall (sideload) and select desired network.

OpenDime:

Plug in your OpenDime using the appropriate OTG (On-The-Go) USB cable and Samourai can be used to view address and balance, validate the private key, and sweep balance to your wallet.

License:

Unlicense

Contributing:

All development goes in 'develop' branch - do not submit pull requests to 'master'.

Dev contact:

PGP

What we do:

Samourai HQ

Sentinel

PayNym.is

OXT

Sovereign.ly

Mule Tools

Extension points exported contracts — how you extend this code

ErrorCallback (Interface)
Code scanner error callback [9 implementers]
app/src/main/java/com/samourai/codescanner/ErrorCallback.java
EventHandler (Interface)
Abstract interface whose methods are invoked when Tor sends us an event. @see TorControlConnection#setEventHandler @see [4 …
tor/src/main/java/net/freehaven/tor/control/EventHandler.java
onInitComplete (Interface)
(no doc) [8 implementers]
app/src/main/java/com/samourai/wallet/whirlpool/fragments/WhirlPoolLoaderDialog.java
WriteObserver (Interface)
Android uses FileObserver and Java uses the WatchService, this class abstracts the two. [2 implementers]
tor/src/main/java/com/msopentech/thali/toronionproxy/WriteObserver.java
OnClickListener (Interface)
(no doc) [36 implementers]
app/src/main/java/com/samourai/wallet/home/adapters/TxAdapter.java
TorServiceConstants (Interface)
(no doc) [1 implementers]
tor/src/main/java/com/msopentech/thali/android/toronionproxy/torinstaller/TorServiceConstants.java
DecodeCallback (Interface)
Callback of the decoding process
app/src/main/java/com/samourai/codescanner/DecodeCallback.java
TorControlCommands (Interface)
(no doc) [1 implementers]
tor/src/main/java/net/freehaven/tor/control/TorControlCommands.java

Core symbols most depended-on inside this repo

toString
called by 534
app/src/main/java/com/samourai/wallet/cahoots/psbt/PSBT.java
get
called by 523
app/src/main/java/com/samourai/wallet/send/RBFUtil.java
has
called by 365
app/src/main/java/com/samourai/wallet/util/PrefsUtil.java
getInstance
called by 289
app/src/main/java/com/samourai/wallet/util/PrefsUtil.java
getValue
called by 265
app/src/main/java/com/samourai/wallet/send/UTXO.java
add
called by 225
app/src/main/java/com/samourai/wallet/send/RBFUtil.java
getInstance
called by 214
app/src/main/java/com/samourai/wallet/SamouraiWallet.java
getInstance
called by 201
app/src/main/java/com/samourai/wallet/bip47/BIP47Meta.java

Shape

Method 2,635
Class 298
Interface 26
Enum 13

Languages

Java100%

Modules by API surface

app/src/main/java/com/samourai/wallet/api/APIFactory.java71 symbols
app/src/main/java/com/samourai/codescanner/CodeScanner.java65 symbols
app/src/main/java/com/samourai/wallet/send/SendActivity.java62 symbols
app/src/main/java/com/samourai/wallet/send/UTXOFactory.java52 symbols
app/src/main/java/com/samourai/wallet/home/BalanceActivity.java52 symbols
app/src/main/java/com/samourai/wallet/bip47/BIP47Meta.java48 symbols
app/src/main/java/com/samourai/wallet/utxos/UTXOSActivity.java46 symbols
app/src/main/java/com/samourai/codescanner/CodeScannerView.java46 symbols
tor/src/main/java/net/freehaven/tor/control/TorControlConnection.java39 symbols
app/src/main/java/com/samourai/wallet/widgets/CircleImageView.java39 symbols
app/src/main/java/com/samourai/wallet/payload/PayloadUtil.java39 symbols
app/src/main/java/com/samourai/wallet/util/AddressFactory.java35 symbols

For agents

$ claude mcp add samourai-wallet-android \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page