tokenised_fund.asseto.offchain_api
Documentation for eth_defi.tokenised_fund.asseto.offchain_api Python module.
Read public Asseto product metadata from its web-application API.
Asseto’s website exposes product information through an undocumented JSON API.
The API is useful for discovering current product descriptions, displayed TVL
and APY, but it is not a versioned developer interface. Use on-chain token
supply and Pricer contracts for canonical valuation.
The public endpoints used here are:
GET /api/home/products— product registryGET /api/product/get— detailed product descriptionGET /api/product/price/list— displayed historical price series
Reference: https://asseto.finance/product
Module Attributes
Asseto web-application API origin. |
|
Asseto API success code returned in JSON envelopes. |
|
Timeout for a public Asseto API request. |
|
Partner organisation names resolved from the public product API's logo URLs. |
Functions
|
Fetch Asseto's public display-price history for one product. |
|
Fetch the richer public description for an Asseto product. |
|
Fetch partner roles for a public Asseto product. |
|
Fetch public EVM product metadata from Asseto's application registry. |
Classes
An EVM Asseto product from the public product registry. |
|
One Asseto display-price history observation. |
|
Detailed public metadata for one Asseto EVM product. |
|
One Asseto product partner role from the public application API. |
Exceptions
Raised when the public Asseto application API returns an error. |
- ASSETO_API_BASE_URL = 'https://asseto.finance'
Asseto web-application API origin.
- ASSETO_API_SUCCESS_CODE = 10000
Asseto API success code returned in JSON envelopes.
- DEFAULT_ASSETO_API_TIMEOUT = 20.0
Timeout for a public Asseto API request.
- ASSETO_PARTNER_ORGANISATIONS_BY_LOGO_URL: dict[str, str] = {'https://static.asseto.finance/asseto/2025-12-25/df750zdneb1gfnxhyx.png': 'Mourant', 'https://static.asseto.finance/asseto/2026-02-01/dg392jckx5iud6zpxg.svg': 'CMS Asset Management (HK)', 'https://static.asseto.finance/asseto/2026-02-01/dg3ccuy5kq0icjvmb1.svg': 'Ogier', 'https://static.asseto.finance/asseto/2026-02-01/dg3m1sh2qakpuofuls.svg': 'Ogier', 'https://static.asseto.finance/asseto/2026-02-25/dgnvdq14496mckrjjs.svg': 'Four Seasons', 'https://static.asseto.finance/asseto/2026-03-19/dh6vej2bje9qdnvcrx.svg': 'DL Holdings', 'https://static.asseto.finance/asseto/2026-03-19/dh6vernck42mtc73wr.svg': 'Vistra', 'https://static.asseto.finance/asseto/2026-03-19/dh6vf4e5plwyumvdew.svg': 'Howse Williams', 'https://static.asseto.finance/asseto/2026-03-19/dh6virggiynbuf4t21.svg': 'CMS Asset Management (HK)', 'https://static.asseto.finance/asseto/2026-03-19/dh6vislm02h0udjoml.svg': 'CMS Asset Management (HK)', 'https://static.asseto.finance/asseto/2026-03-19/dh6viwd1w5vga7fyow.svg': 'Guotai Haitong Securities', 'https://static.asseto.finance/asseto/2026-03-19/dh6viy5gpe9osnj3uv.svg': 'DBS', 'https://static.asseto.finance/asseto/2026-04-28/di4nd2gbtx2fdogdvq.svg': 'JunHe LLP', 'https://static.asseto.finance/asseto/2026-04-28/di4ney6lbp8nncbmog.svg': 'Ogier', 'https://static.asseto.finance/asseto/2026-04-28/di4nfht721exvtcnfh.svg': 'Ogier', 'https://static.asseto.finance/asseto/2026-04-29/di5d7fnwts858eqeen.svg': 'Bank of Communications Trustee Limited', 'https://static.asseto.finance/asseto/2026-04-29/di5didybcyuypabu83.svg': 'DFZQ / Orient Securities International', 'https://static.asseto.finance/asseto/250918/dcvw2q0pbabijptu6r.svg': 'Komainu', 'https://static.asseto.finance/asseto/250918/dcvw451g68jhrw7ibq.png': 'Harneys', 'https://static.asseto.finance/asseto/3_883aeba6-19b2-493f-afe7-196465dd3727_1740491891.svg': 'Komainu', 'https://static.asseto.finance/asseto/3_894f868c-1d82-4720-a6bf-3eaf66abf513_1741070229.svg': 'Komainu', 'https://static.asseto.finance/asseto/3_a6d22914-27ef-43de-8820-6dd6e6ded69a_1740491887.svg': 'China CITIC Bank International', 'https://static.asseto.finance/asseto/3_fc850198-10cb-4bf6-ac0b-443407985e31_1741070226.svg': 'China CITIC Bank International'}
Partner organisation names resolved from the public product API’s logo URLs.
Asseto exposes a partner role and logo URL, but not a text organisation name. These mappings are deliberately exact so an unrecognised or changed logo is surfaced as
Noneinstead of being guessed.
- exception AssetoAPIError
Bases:
RuntimeErrorRaised when the public Asseto application API returns an error.
- __init__(*args, **kwargs)
- __new__(**kwargs)
- add_note(note, /)
Add a note to the exception
- with_traceback(tb, /)
Set self.__traceback__ to tb and return self.
- class AssetoOffchainProduct
Bases:
objectAn EVM Asseto product from the public product registry.
The Asseto registry also has XRPL products. Those are intentionally omitted because this integration is for EVM
VaultBaseadapters.- Variables
product_id – Asseto’s off-chain product identifier.
product_name – Product key required by the detail endpoint’s
productNameheader.contract_address – Token contract address used for matching an EVM vault adapter.
- contract_address: eth_typing.evm.HexAddress
Token contract address.
- denomination_address: Optional[eth_typing.evm.HexAddress]
Product denomination token address.
- tvl: Optional[decimal.Decimal]
Asseto-displayed total value locked in the denomination.
- apy: Optional[decimal.Decimal]
Asseto-displayed annual percentage yield as a percentage.
- __init__(product_id, product_name, full_name, symbol, product_type, chain_id, chain_name, contract_address, denomination_symbol, denomination_address, tvl, apy, introduction, protocol)
- Parameters
product_id (int) –
product_name (str) –
chain_id (int) –
contract_address (eth_typing.evm.HexAddress) –
denomination_address (Optional[eth_typing.evm.HexAddress]) –
tvl (Optional[decimal.Decimal]) –
apy (Optional[decimal.Decimal]) –
- Return type
None
- class AssetoProductDetail
Bases:
objectDetailed public metadata for one Asseto EVM product.
- Variables
product – Product metadata normalised from the detail response.
description – Long-form product description supplied by Asseto.
price – Latest displayed NAV/share. It is informational only; use the product’s on-chain
Pricerfor scanner valuation.
- product: eth_defi.tokenised_fund.asseto.offchain_api.AssetoOffchainProduct
Product metadata normalised from the detail response.
- price: Optional[decimal.Decimal]
Informational displayed NAV/share.
- price_24h: Optional[decimal.Decimal]
Informational displayed price change over 24 hours.
- __init__(product, description, price, price_24h, apy_calculation_method)
- Parameters
product (eth_defi.tokenised_fund.asseto.offchain_api.AssetoOffchainProduct) –
price (Optional[decimal.Decimal]) –
price_24h (Optional[decimal.Decimal]) –
- Return type
None
- class AssetoRoleInfo
Bases:
objectOne Asseto product partner role from the public application API.
Asseto uses a role label and a logo URL for partner information. The application does not export a textual organisation name, so
organisation_nameis resolved only for known official logo assets.- Variables
role – Asseto partner role, such as
Investment ManagerorInvestment Advisor.organisation_name – Organisation resolved from the official Asseto logo asset, or
Nonewhen the logo is unknown.logo_url – Asseto-hosted partner logo URL used for the resolution.
- class AssetoPricePoint
Bases:
objectOne Asseto display-price history observation.
- Variables
timestamp – Unix timestamp in seconds.
value – Displayed NAV/share value in the product denomination.
- value: decimal.Decimal
Displayed NAV/share value.
- __init__(timestamp, value)
- Parameters
timestamp (int) –
value (decimal.Decimal) –
- Return type
None
- fetch_asseto_products(api_base_url='https://asseto.finance', timeout=20.0)
Fetch public EVM product metadata from Asseto’s application registry.
This is an undocumented application endpoint and its response schema may change without notice. It is suitable for optional discovery and descriptions, not for canonical TVL or NAV calculations.
- Parameters
- Returns
Iterator over parseable EVM product records.
- Raises
AssetoAPIError – If the public endpoint returns an invalid response envelope.
- Return type
collections.abc.Iterator[eth_defi.tokenised_fund.asseto.offchain_api.AssetoOffchainProduct]
- fetch_asseto_product_detail(product_name, api_base_url='https://asseto.finance', timeout=20.0)
Fetch the richer public description for an Asseto product.
The application requires the registry product key in a
productNamerequest header. Products without a parseable EVM address returnNone.- Parameters
- Returns
Public product detail, or
Nonefor a non-EVM/malformed product.- Raises
AssetoAPIError – If the public endpoint returns an invalid response envelope.
- Return type
Optional[eth_defi.tokenised_fund.asseto.offchain_api.AssetoProductDetail]
- fetch_asseto_product_roles(product_name, api_base_url='https://asseto.finance', timeout=20.0)
Fetch partner roles for a public Asseto product.
The application API only supplies role labels and logo URLs. This helper resolves a textual organisation name from Asseto’s known official logo assets, retaining unknown assets as
Nonerather than inferring them. See https://asseto.finance/product for the source application.- Parameters
- Returns
Iterator over well-formed public partner roles in API response order.
- Raises
AssetoAPIError – If the public endpoint returns an invalid response envelope.
- Return type
collections.abc.Iterator[eth_defi.tokenised_fund.asseto.offchain_api.AssetoRoleInfo]
- fetch_asseto_price_history(product_id, days=365, api_base_url='https://asseto.finance', timeout=20.0)
Fetch Asseto’s public display-price history for one product.
This feed is informational and can be incomplete; callers must not use it in place of the on-chain NAV source used by
AssetoVault.- Parameters
- Returns
Iterator over parseable price observations, sorted by API response order.
- Raises
AssetoAPIError – If the public endpoint returns an invalid response envelope.
- Return type
collections.abc.Iterator[eth_defi.tokenised_fund.asseto.offchain_api.AssetoPricePoint]