Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crypto Insight Agent with Advanced Data Interaction Capabilities #15

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ coverage.xml
htmlcov
*.egg-info
packages/open_aea
learning_agent
learning_service
crypto_insight_agent
crypto_insight_service

packages/valory/agents/*
packages/valory/connections/*
Expand All @@ -17,11 +17,14 @@ packages/valory/services/*
packages/valory/protocols/*
packages/valory/skills/*

!packages/valory/agents/learning_agent
!packages/valory/services/learning_service
!packages/valory/agents/crypto_insight_agent
!packages/valory/services/crypto_insight_service
!packages/valory/skills/learning_abci
!packages/valory/skills/token_data_collection_abci
!packages/valory/skills/learning_chained_abci
!packages/valory/contracts/erc20
!packages/valory/contracts/ipfs_storage


leak_report
/Pipfile.lock
Expand Down
10 changes: 5 additions & 5 deletions .gitleaksignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ e66dafccf871ac460213be19e7790cbdbe2db6e4:packages/valory/services/learning/servi
e66dafccf871ac460213be19e7790cbdbe2db6e4:packages/valory/agents/learning/aea-config.yaml:generic-api-key:123
e66dafccf871ac460213be19e7790cbdbe2db6e4:packages/valory/skills/learning_abci/skill.yaml:generic-api-key:78
e66dafccf871ac460213be19e7790cbdbe2db6e4:packages/valory/skills/learning_chained_abci/skill.yaml:generic-api-key:77
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/learning_service/service.yaml:generic-api-key:106
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/learning_service/service.yaml:generic-api-key:151
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/learning_service/service.yaml:generic-api-key:196
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/crypto_insight_service/service.yaml:generic-api-key:106
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/crypto_insight_service/service.yaml:generic-api-key:151
26b1707282e6c6f4f768dd99a05fd9b98279683a:packages/valory/services/crypto_insight_service/service.yaml:generic-api-key:196
57255eacc30221cc6fb193cfb8463d1e1718d209:README.md:generic-api-key:57
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/services/learning_service/service.yaml:generic-api-key:55
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/agents/learning_agent/aea-config.yaml:generic-api-key:122
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/services/crypto_insight_service/service.yaml:generic-api-key:55
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/agents/crypto_insight_agent/aea-config.yaml:generic-api-key:122
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/skills/learning_abci/skill.yaml:generic-api-key:73
57255eacc30221cc6fb193cfb8463d1e1718d209:packages/valory/skills/learning_chained_abci/skill.yaml:generic-api-key:77
24d4b331a534eac6da53c8b068324e63182d3b15:packages/valory/skills/learning_abci/skill.yaml:generic-api-key:131
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ all-linters:
fix-abci-app-specs:
export PYTHONPATH=${PYTHONPATH}:${PWD}
autonomy analyse fsm-specs --update --app-class LearningAbciApp --package packages/valory/skills/learning_abci/ || (echo "Failed to check learning_abci abci consistency" && exit 1)
autonomy analyse fsm-specs --update --app-class LearningAbciApp --package packages/valory/skills/token_data_collection_abci/ || (echo "Failed to check token_data_collection_abci abci consistency" && exit 1)
autonomy analyse fsm-specs --update --app-class LearningChainedSkillAbciApp --package packages/valory/skills/learning_chained_abci/ || (echo "Failed to check learning_chained_abci abci consistency" && exit 1)


Expand Down
37 changes: 34 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,38 @@
## Learning Service
# Cryptocurrency Analysis and Forecasting Project

A service to learn about [Olas](https://olas.network/) agents and [Open Autonomy](https://github.com/valory-xyz/open-autonomy).
## Why We Created This Project

The Cryptocurrency Analysis and Forecasting Project was developed to address the need for a more structured and analytical approach in the cryptocurrency investment landscape. With the volatility and rapid changes inherent in crypto markets, investors and analysts require robust tools and comprehensive data to make informed decisions. This project aims to fill that gap by offering detailed analyses, predictive insights, and strategic recommendations tailored to different investor profiles and risk tolerances.

## About The Project

This project is a comprehensive initiative that combines data collection, integration, and advanced analytics to provide deep insights into the cryptocurrency market. It uses a variety of data sources, including historical and real-time market data, social media sentiment, and regulatory changes across different geographies to build a holistic view of the market dynamics. By leveraging machine learning and statistical models, the project aims to forecast market trends and identify investment opportunities effectively.

## Problem Solved

Cryptocurrency markets are notoriously difficult to predict due to their speculative nature and susceptibility to external influences like media and regulatory news. Traditional investment analysis tools are often inadequate due to the lack of integration of diverse data sources and the rapid pace of market changes. This project solves these problems by:
- Integrating multiple data types and sources to provide a comprehensive dataset.
- Analyzing sentiment and regulatory impacts in real-time.
- Developing predictive models that can adapt to the fast-evolving market conditions.

## Achievements

Through the implementation of this project, we have developed a system that can:
- Collect and process large volumes of data in real-time.
- Analyze and interpret complex market sentiments and trends.
- Provide actionable insights and predictive analytics to guide investment strategies.
- Enhance investment decision-making with advanced data-driven models.

# View the Final Output

Explore the end results and detailed outputs of our project by visiting the following link:

[Final Project Output](https://gateway.autonolas.tech/ipfs/QmakmAVwbMRBpqVjMKBsi4pKb6gcUUvVtGwPNzezvSkXjY/metadata.json)


## How The End Result Will Look

The end result is a user-friendly interface displaying various analytical outputs and predictions, accessible via a web dashboard. Users can view categorized lists of cryptocurrencies (like long-run stable tokens, short-run volatile tokens, etc.), accompanied by buy or avoid recommendations based on predictive analytics. Additionally, the system updates these lists and recommendations in real-time as new data is processed.

## System requirements

Expand Down Expand Up @@ -99,5 +130,5 @@ A service to learn about [Olas](https://olas.network/) agents and [Open Autonomy
4. Look at the service logs for one of the agents (on another terminal):

```
docker logs -f learningservice_abci_0
docker logs -f crypto_insight_service
```
12 changes: 7 additions & 5 deletions packages/packages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
{
"dev": {
"contract/valory/erc20/0.1.0": "bafybeibyhuxozkkvsymqz45vxixr3w3bs4vsvxg2nsx5jlyi3f3hhn7ezi",
"skill/valory/learning_abci/0.1.0": "bafybeih5m372dqrdfy7w6iah4m5qfgf3j5t7ihsgorzyzhax5srm32wmim",
"skill/valory/learning_chained_abci/0.1.0": "bafybeihu6uvvdnfntgluhrbxqus5malsit36xqsyxv46wjqsmuodadarpm",
"agent/valory/learning_agent/0.1.0": "bafybeiatizepnj42umexk3p5rnop67cdshbgrflvnysaagm3t4xqo74kem",
"service/valory/learning_service/0.1.0": "bafybeig34lg3wztyj7ecsbyb6qj7ryf34gnpr2cuoz3akjvgdsh3pejboq"
"contract/valory/erc20/0.1.0": "bafybeihoudwg7wrjh47vkcf2z3frpq7rscikqhc2oissozl6q34uay4dfm",
"contract/valory/ipfs_storage/0.1.0": "bafybeifoca6bjxnvtrswerkpb7jmnnox5wwdrys2dsorrzans4qhyaxroi",
"skill/valory/learning_abci/0.1.0": "bafybeid3xvgro6qbjymhpxmg46jraf75zfx462kp6reotkvlxn72x33xji",
"skill/valory/token_data_collection_abci/0.1.0": "bafybeickiiwapmwq26n26j7ds32snneefvno4hlgcoifhw6sn3fwy2v3rm",
"skill/valory/learning_chained_abci/0.1.0": "bafybeih2sowv5niowyss6j5eo5bktkz2pjhwac72fr3tgjllp4mp7axgba",
"agent/valory/crypto_insight_agent/0.1.0": "bafybeiclqaec2lsf5qxsocp77qwjoa5groyxfvr7feveuiddo2qrlf6koq",
"service/valory/crypto_insight_service/0.1.0": "bafybeiazdya72nlwnw6ue3kbvjtnskezatjsp47bzvtrrlg56rinqk3eoa"
},
"third_party": {
"protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#
# ------------------------------------------------------------------------------

"""Package for valory/learning_agent agent."""
"""Package for valory/crypto_insight_agent agent."""
from pathlib import Path


Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
agent_name: learning_agent
agent_name: crypto_insight_agent
author: valory
version: 0.1.0
license: Apache-2.0
description: A learning agent.
aea_version: '>=1.19.0, <2.0.0'
fingerprint:
__init__.py: bafybeie5m76ta46xggcm6dyxszq7ktm5jmcikgqoxho6sttnzvogn52zdq
__init__.py: bafybeidxvjyma3cgnk6lyd2g4tp5u6tql3jjr5r2rn4ke5ejaa6lax43aq
fingerprint_ignore_patterns: []
connections:
- valory/abci:0.1.0:bafybeiejymu4ul62zx6weoibnlsrfprfpjnplhjefz6sr6izgdr4sajlnu
Expand All @@ -19,7 +19,8 @@ contracts:
- valory/gnosis_safe_proxy_factory:0.1.0:bafybeicpcpyurm7gxir2gnlsgzeirzomkhcbnzr5txk67zdf4mmg737rtu
- valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y
- valory/service_registry:0.1.0:bafybeihafe524ilngwzavkhwz4er56p7nyar26lfm7lrksfiqvvzo3kdcq
- valory/erc20:0.1.0:bafybeibyhuxozkkvsymqz45vxixr3w3bs4vsvxg2nsx5jlyi3f3hhn7ezi
- valory/erc20:0.1.0:bafybeihoudwg7wrjh47vkcf2z3frpq7rscikqhc2oissozl6q34uay4dfm
- valory/ipfs_storage:0.1.0:bafybeifoca6bjxnvtrswerkpb7jmnnox5wwdrys2dsorrzans4qhyaxroi
protocols:
- open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi
- valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u
Expand All @@ -32,8 +33,9 @@ protocols:
skills:
- valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu
- valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm
- valory/learning_abci:0.1.0:bafybeih5m372dqrdfy7w6iah4m5qfgf3j5t7ihsgorzyzhax5srm32wmim
- valory/learning_chained_abci:0.1.0:bafybeihu6uvvdnfntgluhrbxqus5malsit36xqsyxv46wjqsmuodadarpm
- valory/learning_abci:0.1.0:bafybeid3xvgro6qbjymhpxmg46jraf75zfx462kp6reotkvlxn72x33xji
- valory/token_data_collection_abci:0.1.0:bafybeickiiwapmwq26n26j7ds32snneefvno4hlgcoifhw6sn3fwy2v3rm
- valory/learning_chained_abci:0.1.0:bafybeih2sowv5niowyss6j5eo5bktkz2pjhwac72fr3tgjllp4mp7axgba
- valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey
- valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq
- valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi
Expand Down Expand Up @@ -200,6 +202,8 @@ models:
multisend_batch_size: ${int:50}
ipfs_address: ${str:https://gateway.autonolas.tech/ipfs/}
coingecko_price_template: ${str:https://api.coingecko.com/api/v3/simple/price?ids=autonolas&vs_currencies=usd&x_cg_demo_api_key={api_key}}
coingecko_histroy_data_template: ${str:https://api.coingecko.com/api/v3/coins/}
ipfs_storage_contract: ${str:'0x5eA0bae9D62bB3dD7A5714e8CA54f4A02B3cb682'}
coingecko_api_key: ${str:null}
default_chain_id: ${str:gnosis}
termination_from_block: ${int:34088325}
Expand All @@ -219,3 +223,19 @@ models:
response_type: dict
retries: 5
url: https://api.coingecko.com/api/v3/simple/price
coingecko_top_cryptocurrencies_specs:
args:
api_id: coingecko
headers:
Accept: application/json
method: GET
parameters:
vs_currency: usd
order: market_cap_desc
per_page: 10
page: 1
sparkline: false
response_key: null
response_type: list
retries: 5
url: https://api.coingecko.com/api/v3/coins/markets
8 changes: 4 additions & 4 deletions packages/valory/contracts/erc20/contract.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ description: ERC20 token contract
license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
README.md: bafybeifmfma6rglvpa22odtozyosnp5mwljum64utxip2wgmezuhnjjjyi
__init__.py: bafybeif5vpc3dfrlxlch7brbhmdwksabyzddpfqgm56vdbbkek3t3br6ke
build/ERC20.json: bafybeiemn5b5nszuss7xj6lmvmjuendltp6wz7ubihdvd7c6wqw4bohbpa
contract.py: bafybeidewckxjj6vaz7sphkpnjgmsyhi7v7hijaz44yu7vbsnv3znqj3wm
README.md: bafybeif7hmm6izsjzpricvczn6dgyky22g3fryjmni7qdf6gybaalgmv5a
__init__.py: bafybeiakinrsb2vekfckyvjewz2c3quhf5gq2556royhuxiu4uhhscgo6m
build/ERC20.json: bafybeidc2ciuhnallxjzy4pmq3xhlcm5sotszmwk4ekrhebzncowozxrpa
contract.py: bafybeig3mdi77e4kka5ubctocv6zo6lxynn2tstcqh4x3t7ot7qgqudlae
fingerprint_ignore_patterns: []
contracts: []
class_name: ERC20
Expand Down
1 change: 1 addition & 0 deletions packages/valory/contracts/ipfs_storage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# ERC20 token contract
20 changes: 20 additions & 0 deletions packages/valory/contracts/ipfs_storage/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------------------------
#
# Copyright 2023-2024 Valory AG
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ------------------------------------------------------------------------------

"""This module contains the support resources for an IPFSDataStorage."""
Loading