Cahoots: a noun to describe people/groups working together in secret.
Samourai Wallet allows you work in cahoots within another PayNym to to send, receive, or collaborate in thee different transaction types:
Joinbot spend
Stowaway spend / receive
Stonewall X2 spend / collaborate
These cahoots transactions work to break on-chain heuristics and obscure the flow of funds on the public bitcoin blockchain.
When sending bitcoin, it is recommended to always spend from your "Mixed Coins" wallet area (also known as "Postmix"). This gives the best starting point to preserve your on-chain privacy. If you do not have any bitcoin in your "Mixed Coins" wallet area, first read our guide to using Whirlpool.
The quickest and easiest Cahoots transaction. Use Joinbot when you want to send to a bitcoin address.
This transaction provides you with strong privacy from the recipient of the spend.
This transaction also breaks the Common-Input Ownership Heuristic; assumption that all inputs to a transaction are owned by the same entity/person.
Joinbot is available 24/7, and automatically creates and broadcasts a Stonewall X2 transaction for the spend, and a Stowaway transaction to collect the anti-spam fee.
Joinbot is a service run by Samourai Wallet, and has a maximum spend limit of 1.25 BTC, and minimum spend limit of 546 sats.
The anti-spam fee (paid to Samourai) costs 3.5% of the spend amount or 0.01 BTC, whichever is less.
Use Stowaway when you want to send or receive bitcoin to/from another PayNym.
Both PayNyms are required to be online to collaborate in this transaction.
On-chain, the amount which is sent from PayNym #A to PayNym #B is obscured. This means it is extreamly difficult for a any third-party observer determine the flow of funds on-chain.
This transaction also breaks the Common-Input Ownership Heuristic; assumption that all inputs to a transaction are owned by the same entity/person.
Transaction miner fees are paid by the PayNym sender.
Use Stonewall X2 when you want to send to a bitcoin address, or help another PayNym make a payment and collaborate in the Stonewall X2 transaction.
To make a Stonewall X2 spend, you (the "sender PayNym") will need the help of another PayNym (a "collaborator PayNym"). Both PayNyms are required to be online to construct this transaction.
Working together you create a transaction where it is difficult to determine the flow of funds for any third-party observer on-chain. This transaction also provides you with strong privacy from the recipient of the spend.
This transaction also breaks the Common-Input Ownership Heuristic; assumption that all inputs to a transaction are owned by the same entity/person.
Transaction miner fees are split between the sender and collaborator PayNym.
Tap your PayNym Bot in the top left corner of the screen
Tap Collaborate
Tap Transaction type, then STONEWALLx2, then Online
Tap Collaborator, then Samourai as mixing partner
Tap Set up transaction
Choose to construct the transaction with bitcoin in your Deposit account or Postmix account
Paste the destination address
or
Tap the icon and scan the recipient's address QR code
Type the amount of BTC to be sent
Choose the miner fee rate by moving the Transaction Priority slider
or
Tap sat/b to enter a Custom Fee
Tap Review transaction setup, then double check the on-screen transaction details
Tap BEGIN TRANSACTION
Wait for step 7/7
Review the on-screen details
Tap Send
After the transactions have been broadcast, a Cahoots success
notification will be displayed:
You will then be automatically navigated to your transaction screen where you will see two outgoing transactions. One for the Stonewall X2 and one for the Stowaway:
Prerequisite:
Ensure you are FOLLOWING the PayNym you wish to send bitcoin to. Learn how to follow a PayNym here.
Tap your PayNym Bot in the top left corner of the screen
Tap Collaborate
Tap Transaction type, then Stowaway, then Online
Tap Collaborator, then select the PayNym you wish to send bitcoin to.
Tap Set up transaction
Choose to construct the transaction with bitcoin in your Deposit account or Postmix account
Type the amount of BTC to be sent
Choose the miner fee rate by moving the Transaction Priority slider
or
Tap sat/b to enter a Custom Fee
Tap Review transaction setup, then double check the on-screen transaction details
Tap BEGIN TRANSACTION
Inform the receiving PayNym to listen for / accept cahoots request
(How-to guide for the receiving PayNym here)
Wait for step 5/5
Review the on-screen details
Tap Send
After the transaction has been broadcast, a Cahoots success
notification will be displayed:
You will then be automatically navigated to your transaction screen where you will see the outgoing transaction:
Prerequisite:
Ensure you are FOLLOWING the PayNym who is going to send you bitcoin. Learn how to follow a PayNym here.
Tap your PayNym Bot in the top left corner of the screen
Tap Collaborate
Stowaway
request to be received from the sender PayNym, then tap YesAfter the transaction has been broadcast, a Cahoots success
notification will be displayed:
You will then be automatically navigated to your Deposit account wallet (un-mixed bitcoin) where you will see the incoming transaction:
Note: If you choose to participate in the Stowaway with bitcoin from your Mixed Coins wallet (Postmix account), UTXO/s from this account will be used as the input/s to the transaction. Your output from the Stowaway transaction will always be received to your Deposit account (un-mixed bitcoin wallet) as a privacy best practice.
Prerequisite:
Ensure you are FOLLOWING the PayNym you wish to collaborate with to send bitcoin. Learn how to follow a PayNym here.
Tap your PayNym Bot in the top left corner of the screen
Tap Collaborate
Tap Transaction type, then Stonewallx2, then Online
Tap Collaborator, then select the PayNym you wish to collaborate with to construct the transaction.
Tap Set up transaction
Choose to construct the transaction with bitcoin in your Deposit account or Postmix account
Paste the destination address
or
Tap the icon and scan the recipient's address QR code
Type the amount to be sent in BTC
Choose the miner fee rate by moving the Transaction Priority slider
or
Tap sat/b to enter a Custom Fee
Tap Review transaction setup, then double check the on-screen transaction details
Tap BEGIN TRANSACTION
Inform the collaborator PayNym to listen for / accept cahoots request
(How-to guide for the collaborator PayNym here)
Wait for step 5/5
Review the on-screen details
Tap Send
After the transaction has been broadcast, a Cahoots success
notification will be displayed:
You will then be automatically navigated to your transaction screen where you will see the outgoing transaction:
Prerequisite:
Ensure you are FOLLOWING the PayNym who you are going to collaborate with. Learn how to follow a PayNym here.
Tap your PayNym Bot in the top left corner of the screen
Tap Collaborate
Stonewall X2
request to be received from the sender PayNym, then tap YesAfter the transaction has been broadcast, a Cahoots success
notification will be displayed:
You will then be automatically navigated to your transaction screen where you will see an outgoing transaction for half the miner fees of the Stonewall X2 you just participated in:
When carrying out an Online Cahoots, two wallets communicate with each other over Soroban; an app agnostic Tor based communications layer. This allows for a Cahoots transaction to be organized between two parties (sender and receiver/collaborator) very quickly and conveniently without the two parties needing to carry out any out-of-band communication.
When Cahoots transactions were first implemented in Samourai Wallet, it wasn't this easy! Instead the two parties had to exchange multiple automatically generated QR codes between each other to construct the transaction making it a more arduous process. This was termed an In Person / Manual Cahoots and is still an available feature within Samourai Wallet (mostly for nostalgia reasons).
How to:
Sender
Receiver / Collaborator - Method #A
Receiver / Collaborator - Method #B
Insufficient wallet balance
Can occur when:
One or both parties do not have a sufficient amount of bitcoin to participate in the transaction.
One or both party's UTXO set does not meet the strict requirements to send, receive, or collaborate in a Stowaway or Stonewall X2 transaction. When sending, receiving, or collaborating in a Cahoots, only UTXOs can be used as inputs to the transaction which have not been seen together in the previous transaction one hop back.
Solutions:
Check you have a sufficient amount of UTXOs marked as "spendable".
If sending a Stonewall X2, try using a different different collaborator.
Try adding more bitcoin to your wallet. As a privacy best practice, we would recommend you Whirlpool any newly received bitcoin before attempting to spend, receive, or collaborate in a Cahoots transaction.
Try sending with Joinbot.
The source did not signal an event
or Java timeout
Can occur when:
The Cahoots collaborator does not "listen for cahoots request" quick enough.
One or both parties is having network connectivity issues.
The sending party does not complete the Cahoots transaction quick enough.
Solutions:
First try carrying out the Cahoots transaction again.
Restart Samourai Wallet / mobile device.