tokenised_fund.asseto.constants

Documentation for eth_defi.tokenised_fund.asseto.constants Python module.

Asseto product metadata.

Asseto AoABT is a permissioned ERC-20 tokenised fund product. Its share token, subscription/redemption hub and NAV pricer are separate contracts, so the shared vault scanner needs this product-level mapping instead of ERC-4626 introspection.

Module Attributes

ASSETO_USD_DENOMINATIONS

Fiat and stablecoin denominations which already represent USD accounting.

HASHKEY_CHAIN_ID

HashKey Chain EVM chain id.

ASSETO_AOABT_HASHKEY

AoABT on HashKey Chain.

ASSETO_PRODUCTS

Product lookup used by the adapter and chain-aware classification.

ASSETO_PRODUCTS_BY_TOKEN

Address-only lookup used for hardcoded protocol routing.

ASSETO_CURATORS

Reviewed manager attribution for Asseto products on supported EVM chains.

ASSETO_HARDCODED_LEADS

Hardcoded leads for tokenised funds that do not emit ERC-4626 events.

Functions

install_asseto_runtime_products(products)

Install API-derived products for the lifetime of this scanner process.

Classes

AssetoCurator

Reviewed investment-manager attribution for an Asseto share token.

AssetoProduct

Asseto on-chain product metadata.

ASSETO_USD_DENOMINATIONS = frozenset({'USD', 'USDC', 'USDT'})

Fiat and stablecoin denominations which already represent USD accounting.

class AssetoProduct

Bases: object

Asseto on-chain product metadata.

Parameters
  • chain_id – EVM chain hosting the product.

  • token – ERC-20 tokenised fund share address.

  • manager – Asseto AoABTManager request/claim contract, when published.

  • pricer – Asseto Pricer contract that publishes NAV/share in base-18 USD, when published.

  • collateral – Stablecoin used by the manager for subscriptions and redemptions, when the product publishes it.

  • first_seen_at_block – Token proxy deployment block.

  • first_seen_at – Token proxy deployment timestamp as a naive UTC datetime.

  • management_fee – Documented annual underlying-fund management fee, when available.

  • performance_fee – Documented underlying-fund performance fee, when available.

  • has_custom_fees – Whether the fund fee terms include conditions that cannot be expressed as one scalar percentage.

denomination_symbol: Optional[str]

Currency in which Asseto publishes NAV/share.

usd_exchange_rates: tuple[tuple[int, decimal.Decimal], ...]

Historical units of denomination currency per USD, keyed by UTC timestamp.

offchain_product_id: Optional[int]

Asseto public product-registry identifier for its display NAV history.

offchain_product_name: Optional[str]

Product key required by Asseto’s off-chain product endpoints.

description: Optional[str]

Informational public product description.

homepage: Optional[str]

Reviewed product-specific homepage, when Asseto does not publish one.

__init__(chain_id, token, symbol, product_name, manager, pricer, collateral, first_seen_at_block, first_seen_at, management_fee=None, performance_fee=None, has_custom_fees=False, denomination_symbol=None, usd_exchange_rates=(), offchain_product_id=None, offchain_product_name=None, description=None, homepage=None)
Parameters
Return type

None

class AssetoCurator

Bases: object

Reviewed investment-manager attribution for an Asseto share token.

manager_name: str

Human-readable manager name exported in vault scan metadata.

curator_slug: str

Curator feeder identifier used by the public vault export.

__init__(manager_name, curator_slug)
Parameters
  • manager_name (str) –

  • curator_slug (str) –

Return type

None

HASHKEY_CHAIN_ID = 177

HashKey Chain EVM chain id.

ASSETO_AOABT_HASHKEY = AssetoProduct(chain_id=177, token='0x80c080acd48ed66a35ae8a24bc1198672215a9bd', symbol='AoABT', product_name='Asseto Orient Arbitrage Token', manager='0x6db7ea55c94fb0f4b22d6b384c18cdaa3b33d746', pricer='0xd72529f8b54fcb59010f2141fc328ada5aa72abb', collateral='0xf1b50ed67a9e2cc94ad3c477779e2d4cbfff9029', first_seen_at_block=3068926, first_seen_at=datetime.datetime(2025, 2, 25, 12, 3, 7), management_fee=0.01, performance_fee=0.2, has_custom_fees=True, denomination_symbol='USDT', usd_exchange_rates=(), offchain_product_id=None, offchain_product_name=None, description='AoABT tokenises the Asseto Orient Arbitrage Strategy and offers daily U.S. dollar yields backed one-to-one by the underlying strategy.', homepage='https://asseto.gitbook.io/asseto/products/aoabt/introduction')

AoABT on HashKey Chain.

Token proxy: https://hsk.blockscout.com/address/0x80C080acd48ED66a35Ae8A24BC1198672215A9bD Manager: https://hsk.blockscout.com/address/0x6dB7eA55c94fb0F4b22D6b384C18CdAa3B33d746 Pricer: https://hsk.blockscout.com/address/0xD72529F8b54fcB59010F2141FC328aDa5Aa72abb

ASSETO_PRODUCTS: dict[tuple[int, eth_typing.evm.HexAddress], eth_defi.tokenised_fund.asseto.constants.AssetoProduct] = {(177, '0x80c080acd48ed66a35ae8a24bc1198672215a9bd'): AssetoProduct(chain_id=177, token='0x80c080acd48ed66a35ae8a24bc1198672215a9bd', symbol='AoABT', product_name='Asseto Orient Arbitrage Token', manager='0x6db7ea55c94fb0f4b22d6b384c18cdaa3b33d746', pricer='0xd72529f8b54fcb59010f2141fc328ada5aa72abb', collateral='0xf1b50ed67a9e2cc94ad3c477779e2d4cbfff9029', first_seen_at_block=3068926, first_seen_at=datetime.datetime(2025, 2, 25, 12, 3, 7), management_fee=0.01, performance_fee=0.2, has_custom_fees=True, denomination_symbol='USDT', usd_exchange_rates=(), offchain_product_id=None, offchain_product_name=None, description='AoABT tokenises the Asseto Orient Arbitrage Strategy and offers daily U.S. dollar yields backed one-to-one by the underlying strategy.', homepage='https://asseto.gitbook.io/asseto/products/aoabt/introduction')}

Product lookup used by the adapter and chain-aware classification.

ASSETO_PRODUCTS_BY_TOKEN: dict[eth_typing.evm.HexAddress, eth_defi.tokenised_fund.asseto.constants.AssetoProduct] = {'0x80c080acd48ed66a35ae8a24bc1198672215a9bd': AssetoProduct(chain_id=177, token='0x80c080acd48ed66a35ae8a24bc1198672215a9bd', symbol='AoABT', product_name='Asseto Orient Arbitrage Token', manager='0x6db7ea55c94fb0f4b22d6b384c18cdaa3b33d746', pricer='0xd72529f8b54fcb59010f2141fc328ada5aa72abb', collateral='0xf1b50ed67a9e2cc94ad3c477779e2d4cbfff9029', first_seen_at_block=3068926, first_seen_at=datetime.datetime(2025, 2, 25, 12, 3, 7), management_fee=0.01, performance_fee=0.2, has_custom_fees=True, denomination_symbol='USDT', usd_exchange_rates=(), offchain_product_id=None, offchain_product_name=None, description='AoABT tokenises the Asseto Orient Arbitrage Strategy and offers daily U.S. dollar yields backed one-to-one by the underlying strategy.', homepage='https://asseto.gitbook.io/asseto/products/aoabt/introduction')}

Address-only lookup used for hardcoded protocol routing.

install_asseto_runtime_products(products)

Install API-derived products for the lifetime of this scanner process.

The classification module imports these mutable mappings during process startup, so retain their identity while replacing only the entries owned by the fresh or validated stale Asseto registry. The scheduled scanner calls this before constructing any AssetoVault adapters.

Parameters

products (list[eth_defi.tokenised_fund.asseto.constants.AssetoProduct]) – Fully prepared product records keyed by chain and token.

Returns

None.

Return type

None

ASSETO_CURATORS: dict[tuple[int, eth_typing.evm.HexAddress], eth_defi.tokenised_fund.asseto.constants.AssetoCurator] = {(1, '0x286d9f099587f567ece2b70ebb64b94acd672d76'): AssetoCurator(manager_name='CNCB (Hong Kong) Capital Limited', curator_slug='cncb-capital'), (1, '0x383730608d98b82470d733369a839f6b7e8cfda5'): AssetoCurator(manager_name='DL Holdings', curator_slug='dl-holdings'), (1, '0x3be5dd4a34f1c6a112048b9df908ced4372d5049'): AssetoCurator(manager_name='Epoch RWA', curator_slug='epoch-rwa'), (1, '0x4867ad1a74b38b0aeff4fff251ed0dadae4f4630'): AssetoCurator(manager_name='Changfeng Asset Management', curator_slug='changfeng-asset-management'), (1, '0x498d9329555471bf6073a5f2d047f746d522a373'): AssetoCurator(manager_name='CMS Asset Management', curator_slug='cms-asset-management-hk'), (1, '0x50bdaff4bceb852f006f657f47c68fcc417f7beb'): AssetoCurator(manager_name='Haitong International Asset Management (HK) Limited', curator_slug='haitong-international-asset-management'), (1, '0x63e19fb814eb737730ac0afbb52b351695b97176'): AssetoCurator(manager_name='GaoTeng Global Asset Management Limited', curator_slug='gaoteng-global-asset-management'), (1, '0x6dc4674573380aff6c3359e19da5cbb6afceb5c3'): AssetoCurator(manager_name='Changfeng Asset Management', curator_slug='changfeng-asset-management'), (1, '0x78e80da0616887b46a31f39310c2a8b0fbd6a42d'): AssetoCurator(manager_name='China Asset Management', curator_slug='chinaamc-hong-kong'), (1, '0x907c00d587daff16d028fe1e131d6dd3c6bf2f4b'): AssetoCurator(manager_name='CMS Asset Management', curator_slug='cms-asset-management-hk'), (1, '0xf252c5bd43907a6cab079e990845a37a7c5730d9'): AssetoCurator(manager_name='Partners Group', curator_slug='partners-group'), (1, '0xf3a2a5de306b063d75c86b6352832639b7263a3b'): AssetoCurator(manager_name='Muzinich & Co.', curator_slug='muzinich'), (56, '0x1775504c5873e179ea2f8abfce3861ec74d159bc'): AssetoCurator(manager_name='CMS Asset Management', curator_slug='cms-asset-management-hk'), (56, '0x1ec3aa07e3898f1e6d4f23b5dce1bdbecb5c1fe1'): AssetoCurator(manager_name='China Asset Management', curator_slug='chinaamc-hong-kong'), (56, '0x50bf2924cee59737ead76e881643ed8569bae6e8'): AssetoCurator(manager_name='Partners Group', curator_slug='partners-group'), (56, '0xfb8cb7630bc3cb34a6a9846ec03de3a32393ee65'): AssetoCurator(manager_name='Muzinich & Co.', curator_slug='muzinich'), (43114, '0xb2ea3e7b80317c4e20d1927034162176e25834e2'): AssetoCurator(manager_name='DFZQ / Orient Securities International', curator_slug='dfzq')}

Reviewed manager attribution for Asseto products on supported EVM chains.

Asseto is the tokenisation and administration platform, not the portfolio manager. These exact mappings deliberately exclude HashKey, Pharos and Prospero deployments, which are not supported by the shared vault export.

ASSETO_HARDCODED_LEADS = ((177, '0x80c080acd48ed66a35ae8a24bc1198672215a9bd', 3068926, datetime.datetime(2025, 2, 25, 12, 3, 7)),)

Hardcoded leads for tokenised funds that do not emit ERC-4626 events.