Bisq
bisq.networkAn open-source, peer-to-peer application that allows you to buy and sell cryptocurrencies in exchange for national currencies. Fully decentralized, and no registration required.
- Homepage:bisq.network
- GitHub:github.com/bisq-network/bisq
- Web info:web-check.xyz/check/bisq.network
Bisq Source Code
Author
Description
A decentralized bitcoin exchange network
Homepage
https://bisq.networkRepository
- LicenseAGPL-3.0
- Created12 Mar 14
- Primary languageJava
- Size1,079,529 KB
- Stars5,131
- Forks1,303
- Watchers5,131
Top Contributors
@ManfredKarrer (6068)
@ripcurlx (2840)
@chimp1984 (1959)
@HenrikJannsen (1680)
@ghubstan (1031)
@sqrrm (767)
@cbeams (764)
@alejandrogarcia83 (693)
@freimair (333)
@mrosseel (299)
@stejbac (230)
@wiz (209)
@devinbileck (184)
@oscarguindzberg (156)
@ivilata (149)
@cd2357 (145)
@julianknutsen (128)
@dependabot[bot] (100)
@christophsturm (99)
@BtcContributor (69)
@alvasw (66)
@wodoro (55)
@dmos62 (42)
@bisq-github-admin-3 (37)
@fenlark (35)
@notmandatory (34)
@tau3 (31)
@niyid (26)
@Emzy (24)
@Jakub-CZ (23)
@SimonTuberlin (23)
@runbtc (22)
@lusarz (22)
@suddenwhipvapor (22)
@battleofwizards (22)
@Android-X13 (22)
@KimStrand (20)
@cparke2 (19)
@thecockatiel (19)
@ben-kaufman (19)
@gabernard (18)
@cedricwalter (18)
@dan-da (14)
@stevenkain (13)
@deusmax (12)
@huey735 (12)
@wallclockbuilder (11)
@riclas (11)
@m52go (10)
@chirhonul (9)
@beingindot (9)
@CaveSpectre11 (8)
@djing-chan (8)
@my-first (8)
@gordonel (8)
@alyokaz (7)
@gubatron (7)
@helixx87 (7)
@rex4539 (6)
@vfelsner (6)
@bitdaric (5)
@KanoczTomas (5)
@pedromvpg (5)
@madcoin-project (5)
@rafaelpac (5)
@jonathancross (5)
@angelcoinmoney (5)
@Manbearpixel (4)
@abigail830 (4)
@maxim-belkin (4)
@j3ko (4)
@ibrahimokdadov (4)
@HostFat (4)
@balistof (4)
@arunasurya (4)
@undso (4)
@ridd84 (3)
@Bayernatoor (3)
@vlad-khramov (3)
@flo071 (3)
@andyheko (3)
@Mentors4EDU (3)
@ezynda3 (3)
@kirklandsig (3)
@bitsquare-team (3)
@Nolaan (3)
@SMH17 (3)
@a123b (3)
@Bob-Thomas (2)
@scpmx (2)
@Technohacker (2)
@aejontargaryen (2)
@alkum (2)
@camthegeek (2)
@dhingra (2)
@ghobson2013 (2)
@hannesstockner (2)
@napoly (2)
@ksynb (2)
@erciccione (2)
Recent Commits
Alva Swanson(31 Aug 26)
Merge pull request #8058 from alvasw/core_Fix_Charsets_to_StandardCharsets_migration core: Fix Charsets to StandardCharsets migration
Alva Swanson(31 Aug 26)
core: Fix Charsets to StandardCharsets migration During a recent rebase of the commit that replaced the deprecated Charsets.UTF_8 with StandardCharsets.UTF_8, some usages in newly added code were missed. This updates the remaining occurrences.
Alva Swanson(29 Aug 26)
Merge pull request #8056 from alvasw/Replace_Locale_constructor_call_with_Locale.of Replace Locale constructor call with Locale.of
Alva Swanson(29 Aug 26)
Merge pull request #8055 from alvasw/Suppress_deprecation_warnings_for_Venmo Suppress deprecation warnings for Venmo
Alva Swanson(29 Aug 26)
Merge pull request #8054 from alvasw/Suppress_legacy_DaoState_serialization_warnings Suppress legacy DaoState serialization warnings
Alva Swanson(29 Aug 26)
Merge pull request #8053 from alvasw/Suppress_deprecation_warnings_for_ArbitrationManager Suppress deprecation warnings for ArbitrationManager
Alva Swanson(29 Aug 26)
Merge pull request #8052 from alvasw/Replace_deprecated_Charsets.UTF_8_with_StandardCharsets.UTF_8 Replace deprecated Charsets.UTF_8 with StandardCharsets.UTF_8
Alva Swanson(29 Aug 26)
Replace Locale constructor call with Locale.of All of Locale's constructors have been deprecated in Java 19. The recommended migration path is to call Locale.of with the same arguments.
Alva Swanson(29 Aug 26)
Suppress deprecation warnings for Venmo Venmo was deprecated and removed as an active payment method due to high chargeback risk. This change suppresses the resulting deprecation warnings to keep the build output clean.
Alva Swanson(29 Aug 26)
Suppress legacy DaoState serialization warnings The method DaoState.getSerializedStateForHashChainLegacy was recently deprecated, but it is still used until the canonical encoding migration verification is complete. This change temporarily suppresses the resulting deprecation warnings to keep the build output clean while we migrate to the new implementation.
Alva Swanson(29 Aug 26)
Suppress deprecation warnings for ArbitrationManager ArbitrationManager was recently deprecated, but the codebase still contains numerous references to it. This change temporarily suppresses the resulting deprecation warnings to keep the build output clean while we migrate to the new implementation
Alva Swanson(29 Aug 26)
Replace deprecated Charsets.UTF_8 with StandardCharsets.UTF_8 StandardCharsets is built into Java 7+, allowing us to rely on the standard library instead of the deprecated Guava implementation. This helps reduce our reliance on external dependencies.
HenrikJannsen(29 Aug 26)
Merge pull request #8009 from fenlark/detect-dead-deposit-tx Detect deposit tx unknown to all block explorers
HenrikJannsen(29 Aug 26)
Merge pull request #8051 from HenrikJannsen/set-version-1.10.8 Set version 1.10.8
HenrikJannsen(29 Aug 26)
Set version 1.10.8
fenlark(29 Aug 26)
Re-check the verdict when the move is confirmed The deposit can confirm while the confirmation popup of the move is open, and the action moved the trade regardless. The wallet observes a confirmation locally, so the confirmation now re-checks the local verdict and leaves the trade in open trades when it no longer holds, telling the user why. Another explorer round trip at that point would add a minutes-long wait over Tor for marginal coverage, as the explorers were consulted moments before. Requested by review.
fenlark(29 Aug 26)
Drop the previous trade state listener on cell update The trade id and move-to-failed cells added a trade state listener on every non-empty updateItem but removed it only when the cell became empty. The table refresh on a dead-deposit verdict change runs updateItem again for the same item, so listeners accumulated and fired duplicate updates. Remove the previous listener before adding a new one. Requested by review.
fenlark(28 Aug 26)
Distinguish reserved inputs from locked funds An unconfirmed deposit locks nothing in the escrow, but the wallet inputs funding it stay reserved until it confirms or is removed. The dead-deposit messages claimed that nothing is locked, which described only the escrow side; say both. Requested by review.
fenlark(28 Aug 26)
Describe the popup hours as trade age The hours placeholder of the dead-deposit popup is derived from the take-offer date, not from the deposit publication, and the liveness specification deliberately keeps it a trigger heuristic. Say the trade started that long ago instead of claiming the deposit has been unconfirmed for that long. Requested by review.
fenlark(28 Aug 26)
Scope explorer messages to configured providers The lookup only evaluates the configured explorer providers, so the messages must not present the verdict as covering all block explorers. Requested by review.
fenlark(27 Aug 26)
Specify deposit transaction liveness rules Record the evidence rule for the unknown-to-all-explorers verdict, the broadcast-evidence requirement including its SPV resync limitation, the safety interval with re-validation on the move action, the verdict lifecycle and the messaging constraints as a canonical specification.
fenlark(27 Aug 26)
Gate the dead-deposit verdict on broadcast evidence The unknown-to-all-explorers verdict was derived from the trade age and a single lookup. Both are wrong ways to measure it: - The seller sends DepositTxAndDelayedPayoutTxMessage before publishing the deposit tx, and fiat publication even waits for its delivery, so a buyer can hold a signed deposit tx which was never broadcast. The explorers truthfully not knowing it is no evidence of death then; the seller can still publish it later. The verdict now requires broadcast evidence on the buyer: the network-sighting state when the wallet saw the tx before the message arrived, or broadcast peers observed on the committed tx afterwards. That evidence is persisted with the wallet; an SPV resync wipes it, in which case no verdict is derived. The seller has evidence by construction, since he reaches the confirmation step only by broadcasting himself. The 24 hour threshold remains as a trigger heuristic for the lookup. - A tx broadcast moments ago may not have reached the explorers, and the verdict could be arbitrarily old by the time the user acts on it. Moving the trade now re-checks the explorers when the action is invoked and is only authorized by a fresh unanimous not-found answer arriving at least 30 minutes after the first one. A transport failure blocks the action, a provider knowing the tx cancels the verdict, and a verdict revoked by a concurrent lookup while the re-check was running is treated as found. The confirmation dialog no longer claims that funds are locked: the dead-deposit case gets its own text stating that the verdict is external and the move reversible.
fenlark(09 Aug 26)
Detect deposit tx unknown to all block explorers checkForTimeoutAtTradeStep1() queries a block explorer after the deposit tx has been unconfirmed for 24 hours, but discards the answer when no provider knows the tx. That hides a state which cannot resolve itself: a deposit tx spending an input which has since been spent by another transaction. No exit path covers it. getTradeStartTime() returns the current time while the deposit is unconfirmed, so getMaxTradePeriodDate() keeps sliding and updateTradePeriodState() never reaches TRADE_PERIOD_OVER, which is what TradeStepView keys its support ticket on. isTxChainInvalid() tests only for absent ids and objects, all present here, so the move to failed trades column stays hidden too. Report the verdict and surface that column. It is only reached when every configured provider positively answered HTTP 404, so checkTxIsConfirmed() now rotates over them like the fee validation callbacks do, and any transport failure ends in the new NACK_TX_LOOKUP_UNREACHABLE, on which the check stays silent. pass() and fail() are untouched, so fee validation keeps failing closed. The marker is not persisted, and is dropped again as soon as a provider returns a status for the tx. The other caller of checkTxIsConfirmed(), DisputeSummaryWindow, now rotates as well.
HenrikJannsen(29 Aug 26)
Merge pull request #8011 from fenlark/complete-trade-on-committed-withdraw-tx Complete trade once withdraw tx is committed to the wallet
HenrikJannsen(29 Aug 26)
Merge pull request #8021 from fenlark/fix-stuck-edit-mode-on-sync-p2p-exception Fix offer stuck in edit mode after synchronous P2P exception
HenrikJannsen(29 Aug 26)
Merge pull request #7960 from fenlark/respect-altcoin-precision-in-trade-amount Round altcoin trade amounts to coin precision
fenlark(28 Aug 26)
Specify offer edit and removal contracts Record the edit-success contract, the removal completion contract with its aggregated batch outcome, and the preconditions the removal imposes on wallet restore, wallet emptying and the BSQ swap republish as a canonical specification.
fenlark(28 Aug 26)
Abort destructive flows when offer removal failed removeAllOpenOffers scheduled its completion handler after a drain delay regardless of the removal outcomes, and a failed removal leaves the offer locally persisted and alive on the offer book. Restoring the wallet from seed words and emptying the wallet, which promise the user that the open offers are removed first, proceeded anyway; the BSQ swap proof-of-work redo minted and published a mutated-id replacement next to the old offer, creating a duplicate the periodic refresh keeps alive. Before this branch a pre-bootstrap removal failure aborted those flows by accident, through the synchronous exception thrown before the completion was scheduled; converting it into an error report widened the window, and a removal rejected by the local store took the unsafe continuation already on master. Aggregate the removal outcomes: the batch removal reports success only when every single removal succeeded, decided after the existing drain delay, and names the failed offers otherwise. Wallet restore and wallet emptying abort with a popup on the error outcome; the redo mints the replacement only from the removal success handler and otherwise leaves the old offer for the next activation to retry. The fire-and-forget removal overload is gone, its only caller was the redo. The wallet-empty exception logging switches from printStackTrace to the standard logger call along the way.
fenlark(28 Aug 26)
Extract the manual test timer for reuse The deterministic UserThread timer replacement was nested inside TxBroadcasterTest and inaccessible to other tests. Move it to a shared test utility unchanged, with accessors instead of the private field reads.
fenlark(28 Aug 26)
Attach the broadcast callback before the memo Attaching the callback after the memo changed the observable sendbtc reply. In the e2e stack the broadcast future can already be complete when the callback is attached, so the callback runs synchronously at attach time; attached after the memo it built the reply with the memo included, while the API contract pinned by the e2e suite is that the memo is not yet persisted before confirmation. Restore the original relative order. With every step guarded on its own, attaching the callback first no longer risks a synchronously thrown handler failure suppressing the mempool publish, which was the reason it had been moved to the end. Fixes the BtcWalletTest.testAliceSendBTCToBob e2e failure.
Bisq Security
Bisq Website
Website
Bisq - A decentralized bitcoin exchange network
Bisq is an open-source desktop application that allows you to buy and sell bitcoin in exchange for national currencies, or alternative cryptocurrencies.
Redirects
Does not redirect
Security Checks
All 65 security checks passed
Server Details
- IP Address172.67.148.205
- LocationSan Francisco,California,United States of America,NA
- ISPCloudFlare Inc.
- ASNAS13335
Associated Countries
US
Safety Score
Website marked as safe
100%
Blacklist Check
bisq.network was found on 0 blacklists
- AntiSocial Blacklist
- Artists Against 419
- Badbitcoin
- Bambenek Consulting
- CERT Polska
- CoinBlockerLists
- CRDF
- CryptoScamDB
- EtherAddressLookup
- EtherScamDB
- Fake Website Buster
- MetaMask EthPhishing
- NABP Not Recommended Sites
- OpenPhish
- PetScams
- PhishFeed
- PhishFort
- Phishing.Database
- PhishStats
- PhishTank
- Phishunt
- RPiList Not Serious
- Scam.Directory
- SecureReload Phishing List
- Spam404
- StopGunScams
- Suspicious Hosting IP
- ThreatFox
- ThreatLog
- TweetFeed
- URLhaus
- ViriBack C2 Tracker
Website Preview
Bisq Reviews
More Crypto Exchanges
RoboSats is an easy way to privately exchange Bitcoin for national currencies. It simplifies the peer-to-peer experience and makes use of lightning hold invoices to minimize custody and trust requirements. The deterministically generated avatars help users stick to best privacy practices.
About the Data: Bisq
Change History
- Amended (github) #608
Edit Bisq Data
You can edit Bisq's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external
sources, a list of these can be found data documentation.
Origin Data
Modify Data
API
You can access Bisq's data programmatically via our API. Simply make a GET request to:
https://api.awesome-privacy.xyz/v1/services/bisqThe REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.
Share Bisq
Help your friends compare Crypto Exchanges, and pick privacy-respecting software and services.
Share Bisq and Awesome Privacy with your network!