Skip to main content

balancerpy

Python package for Balancer V2 modelling

🔗 SPDX-Anchor: anchorregistry.ai/AR-2026-6pDkj46

Install

To install package:

> git clone https://github.com/defipy-devs/balancerpy
> pip install .

or

> pip install BalancerPy

Balancer

from balancerpy import *

user_nm = 'user_test'

amt_dai = 10000000
denorm_wt_dai = 10

amt_eth = 67738.6361731024
denorm_wt_eth = 40

init_pool_shares = 100

dai = ERC20("DAI", "0x111")
dai.deposit(None, amt_dai)

weth = ERC20("WETH", "0x09")
weth.deposit(None, amt_eth)

bgrp = BalancerVault()
bgrp.add_token(dai, denorm_wt_dai)
bgrp.add_token(weth, denorm_wt_eth)

bfactory = BalancerFactory("WETH pool factory", "0x2")
exchg_data = BalancerExchangeData(vault = bgrp, symbol="LP", address="0x011")
lp = bfactory.deploy(exchg_data)

Join().apply(lp, user_nm, init_pool_shares)
lp.summary()

OUTPUT:

Balancer Exchange: DAI-WETH (LP)
Reserves: DAI = 10000000, WETH = 67738.6361731024
Weights: DAI = 0.2, WETH = 0.8
Pool Shares: 100

Swap (out-given-in)

amt_tkn_in = 10000
tkn_in = dai
tkn_out = weth

res = Swap(Proc.SWAPOUT).apply(lp, tkn_in, tkn_out, user_nm, amt_tkn_in)
lp.summary()

print(f"{amt_tkn_in} {tkn_in.token_name} was swapped into {res['tkn_out_amt']} {tkn_out.token_name}")

OUTPUT:

Balancer Exchange: DAI-WETH (LP)
Reserves: DAI = 10010000, WETH = 67721.75437414162
Weights: DAI = 0.2, WETH = 0.8
Pool Shares: 100

10000 DAI was swapped into 16.881798960778035 WETH

Swap (out-given-in)

amt_tkn_out = 20
tkn_out = weth
tkn_in = dai

res = Swap(Proc.SWAPIN).apply(lp, tkn_in, tkn_out, user_nm, amt_tkn_out)
lp.summary()

print(f"{amt_tkn_out} {tkn_out.token_name} was swapped into {res['tkn_in_amt']} {tkn_in.token_name}")

OUTPUT:

Balancer Exchange: DAI-WETH (LP)
Reserves: DAI = 9998136.750149786, WETH = 67741.75437414162
Weights: DAI = 0.2, WETH = 0.8
Pool Shares: 100

20 WETH was swapped into 11863.249850213939 DAI

Testing

Run the full test suite from the repo root:

> python -m pytest python/test/ -v

Tests cover:

  • Process: join, swap (exact-in/exact-out, price impact), add/remove liquidity (by token and by shares), exit pool
  • Quotes: CWP share-to-amount and amount-to-share conversions with round-trip verification
  • Math: all BalancerMath static methods (spot price, out-given-in, in-given-out, pool/single token conversions)

Requirements

> pip install pytest

License

Licensed under the Apache License, Version 2.0.
See LICENSE and NOTICE for details.
Portions of this project may include code from third-party projects under compatible open-source licenses.

Metadata

Release files for BalancerPy 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for BalancerPy 1.1.0
File Size Uploaded
balancerpy-1.1.0.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for BalancerPy 1.1.0
File Interpreter ABI Platform
balancerpy-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.3 kB

Release files / balancerpy-1.1.0.tar.gz

Download URL balancerpy-1.1.0.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f8343a9f8f4b3b416ca9d19ec554676d38dcbcad826ed57528eb55fb1b8c8e89
BLAKE2b-256 checksum
How to use checksums
8d3895fc04d7030fa1ae1ffca998f2d66b252585fecfc642157088ad12311002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / balancerpy-1.1.0-py3-none-any.whl

Download URL balancerpy-1.1.0-py3-none-any.whl
Size 39.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcc484f53235bf571606157991216d5255b8462dcf3b2459fb06efbcbe63e908
BLAKE2b-256 checksum
How to use checksums
4d93a8644f5a64d18cb5271542c413686cea8162cc30b396a46e129fb0f69968
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page