This section will cover how to interact with Notional V3 contracts using ETH brownie a Python-based development and testing framework.

Contract Github repository

Notional's V3 smart contracts repository can be found here.


Here is a simple setup to start interacting with Notional V3 using ETH brownie:

import json
from brownie import (
from import Chain
import eth_abi

class V3Environment:
    def __init__(self):
        self.notional = interface.NotionalProxy("0x1344A36A1B56144C3Bc62E7757377D288fDE0369")
        self.owner = self.notional.owner()

def main():
    env = V3Environment()
    env.chain = Chain()

Contract approval

To interact with the protocol using ERC-20 tokens, accounts must approve Notional's Proxy.

# Approve sending an unlimited amount of DAI to the Notional Proxy.
interface.ERC20(currencyAddress).approve(notional.address, 2**255, {'from': account}) 

Last updated