• Stars
    star
    142
  • Rank 250,818 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🚜 🌾 A DeFi app, which provides staking & farming functions are deploy-able with a website, for yield farming.

DeFi Yield Farming

This project focuses on developing a DeFi app which implements the concept of yield farming / liquidity mining based Dai token.

Demo of the DApp with the screenshots can be found on this wiki page.


This repository presents practices about:

  • Setup a blockchain.
  • Develop Ethereum smart contracts.
  • Write tests for the developed Ethereum smart contracts.
  • Develop a client-side website so people can actually use this application.

You can check the quick tutorial about "what is the blockchain?" in here.


ToDos:

  • Add OpenZeppelin Contracts to minimize risks.
  • Develop a new feature to keep track of the rewards.
  • Implement a method to withdraw the rewards automatically when certain conditions are met (it is triggered manually in the current version).

Theory

What is yield farming?

At its core, yield farming is a process that allows cryptocurrency holders to lock up their holdings, which in turn provides them with rewards.

In brief:

  • Yield farming lets you lock up funds, providing rewards in the process.
  • It involves lending out cryptos via DeFi protocols in order to earn fixed or variable interest.
  • The rewards can be far greater than traditional investments, but higher rewards bring higher risks, especially in such a volatile market.

Application Software Architecture

Here is the application software architecture work-flow:

  • Users use an Internet browser to connect front-end application which is written in HTML, CSS and JavaScript.
  • Then, instead of accessing a back-end server, the website talks directly to the blockchain which is where all the codes and data for the application lives.
  • The DeFi application codes are contained in smart contracts written in solidity progrramming language which was a lot like JavaScript. These smart contracts are immutable which means the code can not change and all the data is stored in the public ledger which is also immutable. And, anytime new data is added to the blockchain, it will be permanent and publicly verifiable.

Installation

Setup

  • Node.js

    sudo curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    nvm install 12.18.3
    node -v
    
  • Truffle

    sudo npm install -g [email protected] --unsafe-perm=true
    
  • Ganache installation guide can be found in here.

  • MetaMask installation guide can be found in here.

Commands

  • Install necessarily Node.js packages

    npm install
    
  • Deploy smart contracts to the Ethereum blockchain

    truffle migrate --reset
    
  • Deploy and run the front-end application

    npm start run
    
  • Run the scripts to issue tokens

    truffle exec scripts/issue-tokens.js
    

Demo of the DApp with the screenshots can be found on this wiki page.

Citation

If you use this code for your publications, please cite it as:

@ONLINE{
    author = "Ahmet Özlü",
    title  = "DeFi Yield Farming App",
    year   = "2021",
    url    = "https://github.com/ahmetozlu/defi_yield_farming"
}

References

This project was built on top of Dapp University implementation, here you can find more details.

Author

Ahmet Özlü

License

This system is available under the MIT license. See the LICENSE file for more info.

More Repositories

1

tensorflow_object_counting_api

🚀 The TensorFlow Object Counting API is an open source framework built on top of TensorFlow and Keras that makes it easy to develop object counting systems!
Python
1,305
star
2

vehicle_counting_tensorflow

🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Python
851
star
3

signature_extractor

A super lightweight image processing algorithm for detection and extraction of overlapped handwritten signatures on scanned documents using OpenCV and scikit-image.
Python
414
star
4

color_recognition

🎨 Color recognition & classification & detection on webcam stream / on video / on single image using K-Nearest Neighbors (KNN) is trained with color histogram features by OpenCV.
Python
301
star
5

augmented_reality

💎 "Marker-less Augmented Reality" with OpenCV and OpenGL.
C++
204
star
6

face_recognition_crop

Multi-view face recognition, face cropping and saving the cropped faces as new images on videos to create a multi-view face recognition database.
Python
139
star
7

vehicle_counting

Vehicle detection, tracking and counting by blob detection with OpenCV on c++.
C++
116
star
8

vehicle_counting_hog_svm

Vehicle detection, tracking and counting by SVM is trained with HOG features using OpenCV on c++.
C++
96
star
9

aipa

AIPA (A.I. Personal Assistant): Speech, Vision, Machine Learning and IoT based intelligent personal assistant for Ubuntu based Linux distributions.
Python
48
star
10

real_time_circle_detection_android

Real time circle detection and tracking by Hough Circle Transform with OpenCV on Android OS.
Java
44
star
11

human_computer_interaction

Fist, palm and hand detection & tracking for intelligent human-computer interaction game character movement control with OpenCV on Java (Processing sketchbook).
Processing
44
star
12

unity_calendar_ui

This is a well defined-basic "Calendar UI" for Unity.
C#
24
star
13

arlo_traffic_analysis

Vehicle detection, tracking, counting and speed prediction on videos with OpenCV.
Python
19
star
14

nonlinear_regression_keras

Training of a neural network for nonlinear regression prediction with TensorFlow and Keras API.
Jupyter Notebook
15
star
15

tcp_socket_programming_android_client

TCP Socket Programming implementation of client side on Android.
Java
12
star
16

smart_contract_helloworld

🔥 Smart contract hello world tutorial: write and deploy your first Ethereum smart contract!
Solidity
9
star
17

decentralized_banking_system

🏦 Decentralized banking system is a DApp built on Ethereum blockchain with smart contract on solidity.
Solidity
9
star
18

object_detection_chooch

A sample project for super fast real time object detection and counting using CHOOCH AI API and OpenCV.
Python
9
star
19

unity_camera_movements

"Main Camera" movements scripts for Unity (for Desktop and Gear VR platforms).
C#
8
star
20

tcp_socket_programming_c_server

TCP Socket Programming implementation of server side in c programming language.
C
8
star
21

the_smart_contract_burger_store

🍔 🍟 A real life case study for developing Ethereum smart contract for businesses: Building a smart contract to manage a burger store.
JavaScript
8
star
22

tensorflow_blob_analysis

A sample project to perform blob analysis on images with TensorFlow and Keras to detect blobs and analyze their shape features such as the presence, number, area, position, length, and direction of lumps.
Python
8
star
23

family_tree_warehouse_app

Ask relation, add/delete/update person, get information of any person, print the family tree, control under 18 age marriage and more...
Python
7
star
24

EncryptedMessengerApplication

Encrypted Messenger App: Sending and receiving messages (over TCP Socket) with high security (powered by RSA and AES).
Java
5
star
25

android_power_monitor

🔋 Android power monitor hardware with Arduino.
C++
4
star
26

java_native_interface

Java Native Interface to call "Java Code" from "C++ Program".
C++
3
star
27

family_tree

Ask relation, add/delete/update person, get information of any person, print the family tree, control under 18 age marriage and more...
Prolog
3
star
28

ahmetozlu.github.io

1
star
29

pattern_matching

Implementation and performance comparison of Boyer Moore, Horspool and Brute Force in c programming language.
C
1
star
30

ethereum-smart-contract-samples

💡 Small smart contract examples to understand basics and some details of developing Ethereum smart contracts!
Solidity
1
star
31

SimpleShell

This program is about a simple shell. The shell accepts user commands and then executes each command in a separate process.
C
1
star
32

sample_spring_microservice_case_study

🦅 An inventory management project for providing a sample microservice case study which contains Spring Cloud Eureka server & client, feign client, error handling & fault tolerance, API gateway, Spring Actuator, distributed log trace with Zipkin, centralized configuration and vault integration with Spring Cloud Config.
Java
1
star