The NoRipple flag disables rippling between any set of two trust lines through an account that has set the flag on both. This allows users, especially market makers to prevent their balances shifting between gateways if they have more than one gateway for the same currency.
The NoRipple flag can be set with a TrustSet transaction, by specifying the tfSetNoRipple flag. Similarly, it can be cleared with the tfClearNoRipple flag. The flag is specific to the account that sets it, i.e. it is tracked separately for either end of the trust line.
An account can only set the NoRipple flag if the trust line balance is either zero or positive in their favor. This prevents users from using this feature to default on their debt. There are other ways users can default, of course, but those ways require them to abandon or empty out their account.
The high and low NoRipple flags are stored in the RippleStateEntry ledger object. In addition, the account_lines RPC/WebSocket command will return no_ripple or no_ripple_peer booleans if those options are set.
The NoRipple flag prevents rippling between any set of two trust lines through an account that has set the flag on both.
Suppose Alice has set the NoRipple flag on her link to FooGateway and BarGateway. The following paths are disallowed because they attempt to use links to enter and exit Alice's account where she has set NoRipple.
FooGateway -> Alice -> BarGateway
BarGateway -> Alice -> FooGateway
All other paths are allowed, as long as they are entering or exiting Alice via at least one trust line that Alice hasn't set as NoRipple:
Alice -> FooGateway
Alice -> FooGateway -> Jeff
Jeff -> FooGateway -> Alice
Jeff -> FooGateway -> Alice -> Bob
FooGateway -> Alice
Jeff -> Alice -> FooGateway
Jeff -> Alice -> FooGateway -> Bob
1) The pathfinder does not consider a path with NoRipple set on the trust lines in and out of an account, set by the account.
2) The path expansion logic errors with terNO_RIPPLE if a path with NoRipple set is used to leave an account other than the first one in the path.