{"id":13744486,"url":"https://github.com/zeriontech/defi-sdk-py","last_synced_at":"2025-05-07T04:43:34.242Z","repository":{"id":44886171,"uuid":"259752471","full_name":"zeriontech/defi-sdk-py","owner":"zeriontech","description":"Python wrapper for DeFi SDK ","archived":false,"fork":false,"pushed_at":"2023-07-20T15:13:58.000Z","size":22,"stargazers_count":15,"open_issues_count":3,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-19T18:32:35.831Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.zerion.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeriontech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-04-28T21:12:41.000Z","updated_at":"2025-01-10T12:41:17.000Z","dependencies_parsed_at":"2024-01-20T01:15:31.804Z","dependency_job_id":"eb4e9862-1f7d-402f-8110-04a11bd03137","html_url":"https://github.com/zeriontech/defi-sdk-py","commit_stats":{"total_commits":10,"total_committers":5,"mean_commits":2.0,"dds":0.6,"last_synced_commit":"d7a4a5ae560bde6df5ee2bda386690e810b06852"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeriontech%2Fdefi-sdk-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeriontech%2Fdefi-sdk-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeriontech%2Fdefi-sdk-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeriontech%2Fdefi-sdk-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeriontech","download_url":"https://codeload.github.com/zeriontech/defi-sdk-py/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251871453,"owners_count":21657463,"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":[],"created_at":"2024-08-03T05:01:10.417Z","updated_at":"2025-05-07T04:43:34.143Z","avatar_url":"https://github.com/zeriontech.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# DeFiSDK.py\n\nThis library is a simple asynchronous python wrapper around [DeFi SDK](https://github.com/zeriontech/defi-sdk).\n\n# Installation\n```bash\n$ pip3 install defisdk\n```\n\n# Usage\n\n### Initialize DeFiSDK\n```python\nfrom defisdk import DeFiSDK\n\nINFURA_API_KEY = '\u003cMY API KEY\u003e'\nETHEREUM_NODE_URL = f'https://mainnet.infura.io/v3/{INFURA_API_KEY}'\n\ndefi_sdk = DeFiSDK(ETHEREUM_NODE_URL)\n```\n\n### Get supported protocols\n\n```python\n\u003e\u003e\u003e await defi_sdk.get_protocol_names()\n['PieDAO',\n 'Multi-Collateral Dai',\n 'Bancor',\n 'DeFi Money Market',\n 'TokenSets',\n '0x Staking',\n 'Uniswap V1',\n 'Synthetix',\n 'PoolTogether',\n 'Dai Savings Rate',\n 'Chai',\n 'iearn.finance (v3)',\n 'iearn.finance (v2)',\n 'Idle',\n 'dYdX',\n 'Curve',\n 'Compound',\n 'Balancer',\n 'Aave']\n```\n\n\n### Get supported token types\n\n```python\n\u003e\u003e\u003e await defi_sdk.get_token_adapter_names()\n['PieDAO Pie Token',\n 'SmartToken',\n 'MToken',\n 'SetToken',\n 'Uniswap V1 pool token',\n 'PoolTogether pool',\n 'Chai token',\n 'YToken',\n 'IdleToken',\n 'Curve pool token',\n 'CToken',\n 'Balancer pool token',\n 'AToken',\n 'ERC20']\n```\n\n### Get derivative token underlying components\n\n```python\n\u003e\u003e\u003e UNISWAP_DAI_POOL = '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667'\n\u003e\u003e\u003e await defi_sdk.get_token_components('Uniswap V1 pool token', UNISWAP_DAI_POOL)\n[\n    TokenBalance(\n        metadata=TokenMetadata(\n            address='0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',\n            name='Ether',\n            symbol='ETH',\n            decimals=18\n        ),\n        balance=Decimal('1.115069671320704604')\n    ),\n    TokenBalance(\n        metadata=TokenMetadata(\n            address='0x6b175474e89094c44da98b954eedeac495271d0f',\n            name='Dai Stablecoin',\n            symbol='DAI',\n            decimals=18\n        ),\n        balance=Decimal('216.692050327076500045')\n    )\n]\n```\n\n### Get account balance locked in a protocol\n\n```python\n\u003e\u003e\u003e USER_ADDRESS = '0xa218a8346454c982912cf6d14c714663c2d510d8'\n\u003e\u003e\u003e await defi_sdk.get_protocol_balance(USER_ADDRESS, 'Aave')\nProtocolBalance(\n    metadata=ProtocolMetadata(\n        name='Aave',\n        description='Decentralized lending \u0026 borrowing protocol',\n        website_url='aave.com',\n        icon_url='protocol-icons.s3.amazonaws.com/aave.png',\n        version=0\n    ),\n    adapter_balances=[\n        AdapterBalance(\n            metadata=AdapterMetadata(\n                address='0x8b62c02091fe06ae3454d3c12921b32611ba5501',\n                type='Asset'\n            ),\n            asset_balances=[\n                AssetBalance(\n                    base_token_balance=TokenBalance(\n                        metadata=TokenMetadata(\n                            address='0xfc1e690f61efd961294b3e1ce3313fbd8aa4f85d',\n                            name='Aave Interest bearing DAI',\n                            symbol='aDAI',\n                            decimals=18\n                        ),\n                        balance=Decimal('1.006384746516743708')\n                    ),\n                    underlying_token_balances=[\n                        TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0x6b175474e89094c44da98b954eedeac495271d0f',\n                                name='Dai Stablecoin',\n                                symbol='DAI',\n                                decimals=18\n                            ),\n                            balance=Decimal('1.006384746516743708')\n                        )\n                    ]\n                )\n            ]\n        )\n    ]\n)\n```\n\n### Get account balance across all the support protocols\n\n```python\n\u003e\u003e\u003e USER_ADDRESS = '0xa218a8346454c982912cf6d14c714663c2d510d8'\n\u003e\u003e\u003e await defi_sdk.get_account_balance(USER_ADDRESS)\n[\n    ProtocolBalance(\n        metadata=ProtocolMetadata(\n            name='Synthetix',\n            description='Synthetic assets protocol',\n            website_url='synthetix.io',\n            icon_url='protocol-icons.s3.amazonaws.com/synthetix.png',\n            version=1\n        ),\n        adapter_balances=[\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0xfd23f77fbd9fc08c4634cc3fdd58054cece3792b',\n                    type='Asset'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f',\n                                name='Synthetix Network Token',\n                                symbol='SNX',\n                                decimals=18\n                            ),\n                            balance=Decimal('0.010000000000000000')\n                        ),\n                        underlying_token_balances=[]\n                    )\n                ]\n            )\n        ]\n    ),\n    ProtocolBalance(\n        metadata=ProtocolMetadata(\n            name='dYdX',\n            description='Decentralized trading platform',\n            website_url='dydx.exchange',\n            icon_url='protocol-icons.s3.amazonaws.com/dYdX.png',\n            version=0\n        ),\n        adapter_balances=[\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0x375c3222bb7d4834b4381abd4ed15dff4d4c0a68',\n                    type='Asset'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n                                name='Wrapped Ether',\n                                symbol='WETH',\n                                decimals=18\n                            ),\n                            balance=Decimal('0.185594562946597852')\n                        ),\n                        underlying_token_balances=[]\n                    ),\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0x6b175474e89094c44da98b954eedeac495271d0f',\n                                name='Dai Stablecoin',\n                                symbol='DAI',\n                                decimals=18\n                            ),\n                            balance=Decimal('185.230336031983831471')\n                        ),\n                        underlying_token_balances=[]\n                    )\n                ]\n            ),\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0xbf3fc291876707b2d0c8fc49bcd76fae00219d37',\n                    type='Debt'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n                                name='USD//C',\n                                symbol='USDC',\n                                decimals=6\n                            ),\n                            balance=Decimal('50.819863')\n                        ),\n                        underlying_token_balances=[]\n                    )\n                ]\n            )\n        ]\n    ),\n    ProtocolBalance(\n        metadata=ProtocolMetadata(\n            name='Compound',\n            description='Decentralized lending \u0026 borrowing protocol',\n            website_url='compound.finance',\n            icon_url='protocol-icons.s3.amazonaws.com/compound.png',\n            version=0\n        ),\n        adapter_balances=[\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0xaa74b0f33cab1b291980532bc5e0057e10adb2a3',\n                    type='Asset'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0x4ddc2d193948926d02f9b1fe9e1daa0718270ed5',\n                                name='Compound Ether',\n                                symbol='cETH',\n                                decimals=8\n                            ),\n                            balance=Decimal('499.72749958')\n                        ),\n                        underlying_token_balances=[\n                            TokenBalance(\n                                metadata=TokenMetadata(\n                                    address='0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',\n                                    name='Ether',\n                                    symbol='ETH',\n                                    decimals=18\n                                ),\n                                balance=Decimal('10.000492390829125770')\n                            )\n                        ]\n                    ),\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0x39aa39c021dfbae8fac545936693ac917d5e7563',\n                                name='Compound USD Coin',\n                                symbol='cUSDC',\n                                decimals=8\n                            ),\n                            balance=Decimal('48.61414113')\n                        ),\n                        underlying_token_balances=[\n                            TokenBalance(\n                                metadata=TokenMetadata(\n                                    address='0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n                                    name='USD//C',\n                                    symbol='USDC',\n                                    decimals=6\n                                ),\n                                balance=Decimal('1.021851')\n                            )\n                        ]\n                    )\n                ]\n            ),\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0xae61b0d0a562e5c1daf9c1ded4a8fd6a770b639a',\n                    type='Debt'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0x0d8775f648430679a709e98d2b0cb6250d2887ef',\n                                name='Basic Attention Token',\n                                symbol='BAT', decimals=18\n                            ),\n                            balance=Decimal('0.000117145388391941')\n                        ),\n                        underlying_token_balances=[]\n                    ),\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n                                name='USD//C',\n                                symbol='USDC',\n                                decimals=6\n                            ),\n                            balance=Decimal('437.598211')\n                        ),\n                        underlying_token_balances=[]\n                    )\n                ]\n            )\n        ]\n    ),\n    ProtocolBalance(\n        metadata=ProtocolMetadata(\n            name='Aave',\n            description='Decentralized lending \u0026 borrowing protocol',\n            website_url='aave.com',\n            icon_url='protocol-icons.s3.amazonaws.com/aave.png',\n            version=0\n        ),\n        adapter_balances=[\n            AdapterBalance(\n                metadata=AdapterMetadata(\n                    address='0x8b62c02091fe06ae3454d3c12921b32611ba5501',\n                    type='Asset'\n                ),\n                asset_balances=[\n                    AssetBalance(\n                        base_token_balance=TokenBalance(\n                            metadata=TokenMetadata(\n                                address='0xfc1e690f61efd961294b3e1ce3313fbd8aa4f85d',\n                                name='Aave Interest bearing DAI',\n                                symbol='aDAI',\n                                decimals=18\n                            ),\n                            balance=Decimal('1.006383863871752377')\n                        ),\n                        underlying_token_balances=[\n                            TokenBalance(\n                                metadata=TokenMetadata(\n                                    address='0x6b175474e89094c44da98b954eedeac495271d0f',\n                                    name='Dai Stablecoin',\n                                    symbol='DAI',\n                                    decimals=18\n                                ),\n                                balance=Decimal('1.006383863871752377')\n                            )\n                        ]\n                    )\n                ]\n            )\n        ]\n    )\n]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeriontech%2Fdefi-sdk-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeriontech%2Fdefi-sdk-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeriontech%2Fdefi-sdk-py/lists"}