Anchor Protocol Script that can save you from being liquidated!

Overview

Why

My day job requires a fairly good amount of automation from time to time. Besides, I do like computers to work on what I cannot while I'm sleeping!

AnchorHoDL is an implementation that auto-pay/auto-borrow based on whatever config you desire.

I've started this app due my own needs and to learn more about Terra's ecosystem.

How it works

  1. It will query Anchor smart contracts checking LTV (Loan-to-Value);
  2. If the LTV is grater than trigger_at_percent it will trigger a repay action.
  3. If the amount required to repay (target_percent) is in the wallet, it will be used and loan will repay back to target_percent mark.
  4. If not, it will withdraw from aUST (Anchor deposit).
  5. The script will NOT sell any asset to pay loan.
  6. If enabled_auto_borrow is enabled (by default) and current LTV is smaller than auto_borrow_at_percent, an auto borrow will be trigger moving LTV to target_percent.

How to use it

  1. git clone this repository.
  2. Rename config.py.sample to config.py.
  3. Change config.py as you desire and feed your seed (a dedicated wallet is recommended).
  4. Run pip3 install -r requirements.txt
  5. Run python3 webview.py and simply browsing to http://localhost:5000 for an auto-pay/borrow running every 30 seconds. OR Run python3 anchor_loan_repay.py once or use a while loop to run evey 30 seconds while true; do python3 anchor_loan_repay.py; sleep 30; done

installing

Persistence mode

  1. Install gunicorn: pip3 install gunicorn
  2. Run gunicorn -b 127.0.0.1:5000 webview:app --daemon

Done! gunicorn is running as daemon!

Docker mode

  1. If you don't have Docker installed, grab if from https://docs.docker.com/get-docker/.
  2. Once installed, clone this repository by git clone https://github.com/unl1k3ly/AnchorHODL
  3. Rename config.py.sample to config.py and provide details.
  4. Build the image with docker build -t AnchorHODL .
  5. Run the image with docker run -p 5000:5000 AnchorHODL:latest or add -d if you want to run it as a daemon.
  6. Check if its working by http://localhost:5000

Screenshots

  • You can run the script in your terminal in a tmux/screen session as per figure below: Webview

  • Or (recommended) you can spin a web service that does everything for you after you ran python3 webview.py Webview

Slack Notification

If you use more Slack on daily bases like me, it might be simpler to be notified in there using Slack Webhooks.

  1. Create a Slack APP.
  2. Add the APP to a channel and get a webhook URL to feed the config.py.

More information can be found via this link https://api.slack.com/incoming-webhooks

Telegram Notification

If you want to be notified via Telegram, you'd need to get access_token and your chat_id from your Telegram bot. If you are not familiarized creating a Telegram bot, please follow steps below:

  1. On Telegram, find @BotFather and open a DM.
  2. Use /newbot to create a new bot for yourself.
  3. Then, name the bot as you wish, ie: MyCoolBot
  4. Now, choose whatever username you desire for your bot, ie: MyCool_bot
  5. Done! You should see a "Congratulations" message from BotFather.
  6. To get your own chat_id, simply open a DM with your bot, send something up and run the following command below: curl -s https://api.telegram.org/ACCESSTOKEN/getUpdates (replace ACCESSTOKEN with an actual token you just got from item #5).
  7. With access_token and chat_id just feed the config.py file.

If these instructions are unclear, just Google "How to create a Telegram Bot and get your own chat_id"!

Considerations

  • It's recommended to run this code in a contained environment at maximum security. Dockerfile is also provided if you want to deploy it seamless somewhere.
  • If you are using the webview, ensure the access is restricted and not exposed to the entire Internet. You can use "CloudFare Argo Tunnel" for that.
  • Since a wallet seed is required, ensure you protect it and know what you're doing while using this automation ...
  • If you don't want to pass secrets into the config.py file, make sure you declare as a system variable.
  • Everything will be logged into the ./logs folder. Make sure you check those from time to time!

Conclusion

  • I have no intentions to actively develop new features or take issue requests. As mentioned, this automation was to address a self issue I had and consequently avoid liquidation! It works for my own needs.
  • I'm happy to fix bugs or take merge requests.
  • If you intend to modify the code yourself, please do a fork and start from it !

Similar projects

Support!

  • If you feel this project is the right one for you, please, donate to terra1uwkfuh6crvlttqsj2rv0tjpl8v0dy3d4swayg7 if you feel like doing so.

Thanks Terra and Anchor team!

Cheers all!

Owner
how do i do bio
A simple telegram bot to recognize lengthy voice files to text and vice versa with multiple language support.

Voicebot A simple Telegram bot to convert lengthy voice clips to text and vice versa with supporting languages. Mandatory Variables API_HASH - Yo

Renjith Mangal 12 Oct 21, 2022
A melhor maneira de atender seus clientes no Telegram!

Clientes.Chat Sobre o serviço Configuração Banco de Dados Variáveis de Ambiente Docker Python Heroku Contribuição Sobre o serviço A maneira mais organ

Gabriel R F 10 Oct 12, 2022
Скрипт, позволяющий импортировать плейлисты из Spotify, а также обычные треклисты в VK музыку.

vk-music-import Программа для переноса плейлистов из Spotify и текстовых треклистов в VK Музыку. Преимущества: Позволяет быстро импортировать плейлист

Mew Forest 32 Nov 23, 2022
A Slash Commands Discord Bot created using Pycord!

Hey, I am Slash Bot. A Bot which works with Slash Commands! Prerequisites Python 3+ Check out. the requirements.txt and install all the pakages. Insta

Saumya Patel 18 Nov 15, 2022
This is a very simple botnet with a CnC server, made by me. Feel free to change anything

This is a very simple botnet with a CnC server, made by me. Feel free to change anything

8 Nov 12, 2022
This library is for simplified work with the sms-man.com API

SMSMAN Public API Python This is a lightweight library that works as a connector to Sms-Man public API Installation pip install smsman Documentation h

13 Nov 19, 2022
A Discord bot that automatically saves SHSH blobs for all of your iOS devices.

AutoTSS AutoTSS is a Discord bot that automatically saves SHSH blobs for all of your iOS devices. Want a CLI automatic blob saver? Check out AutoTSS-c

adam 79 Dec 13, 2022
SaltConf21: Adding Workflow Approval to Salt

SaltConf21: Adding Workflow Approval to Salt Running To run the example, install Docker and docker-compose and run the following commands: docker-comp

SSYS Sistemas 4 Nov 24, 2021
Python bindings to the Syncthing REST interface.

python-syncthing Python bindings to the Syncthing REST interface. Python API Documentation Syncthing Syncthing REST Documentation Syncthing Forums $ p

Blake VandeMerwe 64 Aug 13, 2022
Spotify playlist anonymizer.

Spotify heavily personalizes auto-generated playlists like Song Radio based on the music you've listened to in the past. But sometimes you want to listen to Song Radio precisely to hear some fresh so

Jakob de Maeyer 9 Nov 27, 2022
OpenVisionAPI client

OpenVisionAPI Client 🚀 Getting Started Prerequisites Installing Install the dependencies $ make setup Usage $ source .venv/bin/activate $ ./ova_clie

Open Vision API 40 Nov 11, 2022
Twitter bot that finds new friends in Twitter.

PythonTwitterBot Twitter Bot Thats Find New Friends pip install textblob pip install tweepy pip install googletrans check requirements.txt file Env

IbukiYoshida 4 Aug 11, 2021
Web3 Pancakeswap Sniper & honeypot detector Take Profit/StopLose bot written in python3, For ANDROID WIN MAC & LINUX

🏆 Pancakeswap BSC Sniper Bot web3 with honeypot detector (ANDROID WINDOWS MAC LINUX) 🥇 ⭐️ ⭐️ ⭐️ First SNIPER BOT for ANDROID & WINDOWS with honeypot

HYDRA 2 Dec 24, 2021
You can connect with Sanila Ranatunga using this bot😉😉

Sanila-Ranatunga-s-Assistant-Bot You can connect with Sanila Ranatunga using this bot 😉 😉 Reach me on Telegram Sanila's Assistant Bot What is Telegr

Sanila Ranatunga 5 Feb 01, 2022
A link shortner telegram bot version 2 with advanced features

URL-Shortner-Bot-V2 A link shortner telegram bot version 2 with advanced features Made with Python3 (C) @FayasNoushad Copyright permission under MIT L

Fayas Noushad 18 Dec 29, 2022
Group Management Bot

❤️ 𝗦𝗛𝗔𝗗𝗜𝗬𝗢 ❤️ A Powerful, Smart And Advance Group Manager ... Written with AioGram , Pyrogram and Telethon... ⭐️ Thanks to everyone who starred

Abdisamad Omar Mohamed 4 Dec 01, 2021
A robust, low-level connector for the Discord API

Bauxite Bauxite is a robust, low-level connector for the Discord API. What is Bauxite for? Bauxite is made for two main purposes: Creating higher-leve

1 Dec 04, 2021
Discord Streaming Statut (Bot/SelfBot)

Discord-Streaming-Status Discord Streaming Status For Both User Accounts And Bot Accounts. Open your cmd and enter the command: pip install discord BE

Komuro 2 Nov 02, 2021
A python library created to make life easier for Telegram API Developers.

opentele A python library created to make life easier for Telegram API Developers. Read the documentation Features Convert Telegram Desktop tdata sess

103 Jan 02, 2023