{"id":13728968,"url":"https://github.com/Reidmcc/rockfish","last_synced_at":"2025-05-08T01:30:35.233Z","repository":{"id":40432325,"uuid":"166722300","full_name":"Reidmcc/rockfish","owner":"Reidmcc","description":"Rockfish is an arbitrage bot for the Stellar Decentralized Exchange (SDEX)","archived":false,"fork":false,"pushed_at":"2019-03-21T01:03:42.000Z","size":15217,"stargazers_count":73,"open_issues_count":11,"forks_count":23,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-11-14T19:40:35.657Z","etag":null,"topics":["arbitrage","arbitrage-bot","blockchain","cryptocurrency","cryptocurrency-exchanges","cryptocurrency-trading-bot","stellar","stellar-network","trading","trading-algorithms","trading-bot","trading-strategies"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Reidmcc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-20T23:53:18.000Z","updated_at":"2024-11-01T03:27:33.000Z","dependencies_parsed_at":"2022-09-26T19:53:27.370Z","dependency_job_id":null,"html_url":"https://github.com/Reidmcc/rockfish","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reidmcc%2Frockfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reidmcc%2Frockfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reidmcc%2Frockfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reidmcc%2Frockfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Reidmcc","download_url":"https://codeload.github.com/Reidmcc/rockfish/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252981378,"owners_count":21835416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arbitrage","arbitrage-bot","blockchain","cryptocurrency","cryptocurrency-exchanges","cryptocurrency-trading-bot","stellar","stellar-network","trading","trading-algorithms","trading-bot","trading-strategies"],"created_at":"2024-08-03T02:00:52.907Z","updated_at":"2025-05-08T01:30:30.220Z","avatar_url":"https://github.com/Reidmcc.png","language":"Go","funding_links":[],"categories":["Use the Stellar Decentralized Exchange","使用恒星去中心化交易所"],"sub_categories":[],"readme":"![rockfish banner](https://user-images.githubusercontent.com/43561569/52517026-2be8b480-2bfa-11e9-9f95-4379a7010ad1.png)\n![GitHub last commit](https://img.shields.io/github/last-commit/Reidmcc/rockfish.svg?style=for-the-badge)\n![license](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\u0026longCache=true)\n\n![Build Status](https://travis-ci.com/Reidmcc/rockfish.svg?branch=master)\n![GitHub issues](https://img.shields.io/github/issues/Reidmcc/rockfish.svg?style=flat-square\u0026longCache=true)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/Reidmcc/rockfish.svg?style=flat-square\u0026longCache=true)\n\nRockfish is an arbitrage bot for the Stellar Decentralized Exchange (SDEX). The SDEX is native to [Stellar's](https://www.stellar.org/) blockchain, and you can interact with it through third-party frontends, such as [Stellar X](https://www.stellarx.com/) and [Stellarport](https://stellarport.io/home).\n\nDue to the specifics of the SDEX, the way Rockfish works is quite different from general arbitrage. First, Rockfish uses a same-exchange cross-asset strategy, instead of buying an asset on one exchange and selling the same asset on another.\n\nMore importantly, Rockfish doesn't technically perform trades; it makes payments. One of Stellar's headline features is [atomic multi-currency transactions](https://www.stellar.org/how-it-works/stellar-basics/explainers/#Multi-currency_transactions). These payments route assets through the SDEX, using available buy and sell orders. It's essentially a currency exchange service. It is also the equivalent of buying an asset, using that asset to buy a second asset, and selling the second asset back into the destination asset. If the orders line up favorably and you set the destination asset to the start asset, it's possible to make a profit. The underlying trades all execute together, so the intermediate assets are never held by either the payer or the recepient, greatly alleviating the risk that sequential trades would incur.\n\nAll of which also adds up to rationalizing price discovery on the SDEX. Pretty great!\n\n### Using Rockfish\n\nCheck out the [walkthrough](https://github.com/Reidmcc/rockfish/blob/master/walkthrough.md).\n\n### Installing Rockfish\n\nEither grab one of the releases, or you can compile from source, see below. Terminal commands in these instructions are mostly for Linux.\n\n1. Clone this repository\n2. Install the [Go programming language](https://golang.org/)\n3. Install [Glide](https://github.com/Masterminds/glide) `curl https://glide.sh/get | sh`\n4. Run `glide install` (for Windows too)\n5. Run Rockfish's `build.sh` from the main Rockfish repo directory `./scripts/build.sh`\n6. You should now have a `bin` folder in your repository with an executable: `rockfish`\n\n#### A note about network congestion\n\nWe are committed to using the Stellar network in a way that is conscientious towards other network users. There has been some concern about arbitrage bots congesting the Stellar network by spamming path payments, which is a blunt way of trying to perform arbitrage. Rockfish only submits a transaction when it sees an actual profit opportunity; at maximum one transaction per ledger if there were profits available all the time.\n\n#### Acknowledgments\n\nRockfish uses many [Kelp](https://github.com/interstellar/kelp) components and would not be possible without them. Real rockfish live in [kelp forests](https://en.wikipedia.org/wiki/Kelp_forest); hence the name.\n\nLogo image based on: _[Tiger Rockfish](https://commons.wikimedia.org/wiki/File:Tiger_rockfish_Joseph_R._Tomelleri.JPG). Joseph R. Tomelleri,  NOAA Professional Paper NMFS 18-Fishes of the Salish Sea: a compilation and distributional analysis. National Marine Fisheries Service (September 2015). doi:10.7755/PP.18_\n\n#### Disclaimer\n\nNothing in Rockfish or its documentation should be taken as investment advice. Rockfish is available as-is, on the terms of the [MIT License](https://github.com/Reidmcc/rockfish/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReidmcc%2Frockfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FReidmcc%2Frockfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReidmcc%2Frockfish/lists"}