WSTGBPVault
Documentation for eth_defi.wstgbp.vault.WSTGBPVault Python class.
- class WSTGBPVault
Bases:
eth_defi.vault.base.VaultBaseScan-only adapter for Wren Staked tGBP contracts.
The wstGBP contract itself is the share token. It reports a WAD-scaled NAV/share and the actual asset used for minting and redemption. The adapter reads these values, but leaves generic transaction construction unsupported because the contract uses bespoke flows.
Create a Wren Staked tGBP vault adapter.
- Parameters
web3 – Web3 connection.
spec – Chain and wstGBP token address.
token_cache – Token metadata cache used by
fetch_erc20_details().features – Shared pipeline feature flags. Expected to contain
ERC4626Feature.wstgbp_like.default_block_identifier – Default block for metadata reads.
require_denomination_token – Whether a failed
gem()lookup should raise throughVaultBase.denomination_token.
Attributes summary
Return the Wren Staked tGBP token and vault address.
Return the EVM chain identifier.
Get the token which denominates the vault valuation
Deposit manager assocaited with this vault
Return the product description.
Flow manager associated with this vault
Get info dictionary related to this vault deployment.
Return the protocol display name.
Return the ERC-20 share token name.
ERC-20 that presents vault shares.
Return a listing-friendly product summary.
Return the ERC-20 share token symbol.
Return the scanner compatibility vault-address alias.
Return the wstGBP contract interface.
Methods summary
__init__(web3, spec[, token_cache, ...])Create a Wren Staked tGBP vault adapter.
fetch_available_liquidity([block_identifier])Get the amount of denomination token available for immediate withdrawal.
Fetch metadata for the wstGBP
gem()token.Read the wstGBP purchase token through
gem().Get human-readable reason why deposits are closed.
Get when deposits will next be open.
Return Wren Staked tGBP metadata and NAV source.
fetch_nav([block_identifier])Return Wren Staked tGBP NAV.
fetch_portfolio(universe[, block_identifier])Return an empty portfolio for the scan-only adapter.
Get human-readable reason why redemptions are closed.
Get when withdrawals/redemptions will next be open.
Return Wren Staked tGBP-specific scanner diagnostics.
fetch_share_price([block_identifier])Read Wren Staked tGBP NAV/share from
navprice().Fetch Wren Staked tGBP ERC-20 token metadata.
fetch_share_token_address([block_identifier])Return the Wren Staked tGBP share-token address.
fetch_total_assets([block_identifier])Calculate Wren Staked tGBP TVL from supply and NAV/share.
fetch_total_supply([block_identifier])Read the outstanding Wren Staked tGBP share supply.
fetch_utilisation_percent([block_identifier])Get the percentage of assets currently lent out.
get_deposit_fee(block_identifier)Calculate the mint spread above NAV/share.
Reject generic Wren Staked tGBP transaction construction.
Return static public transaction-adapter support, if any.
What is the estimated lock-up period for this vault.
Return current Wren Staked tGBP mint and redemption spread fees.
Get how this vault accounts its fees.
Get various vault state flags from the smart contract.
Reject generic Wren Staked tGBP flow accounting.
get_historical_reader(stateful)Create a Wren Staked tGBP historical reader.
get_link([referral])Return the Wren Staked tGBP product documentation link.
get_management_fee(block_identifier)Return the unknown annual management fee.
Return the wstGBP product description for vault exports.
get_performance_fee(block_identifier)Return the unknown performance fee.
Return the name of the vault protocol.
get_risk()Get risk profile of this vault.
get_spec()get_withdraw_fee(block_identifier)Calculate the redemption spread below NAV/share.
Return whether standard vault-flow event reading is supported.
Does this vault have fees outside the shared fee model.
Return whether deposits distribute directly to positions.
- __init__(web3, spec, token_cache=None, features=None, default_block_identifier=None, require_denomination_token=False)
Create a Wren Staked tGBP vault adapter.
- Parameters
web3 (web3.main.Web3) – Web3 connection.
spec (eth_defi.vault.base.VaultSpec) – Chain and wstGBP token address.
token_cache (Optional[dict]) – Token metadata cache used by
fetch_erc20_details().features (Optional[set[eth_defi.erc_4626.core.ERC4626Feature]]) – Shared pipeline feature flags. Expected to contain
ERC4626Feature.wstgbp_like.default_block_identifier (Optional[Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]]) – Default block for metadata reads.
require_denomination_token (bool) – Whether a failed
gem()lookup should raise throughVaultBase.denomination_token.
- property chain_id: int
Return the EVM chain identifier.
- Returns
Chain id associated with this deployment.
- property address: eth_typing.evm.HexAddress
Return the Wren Staked tGBP token and vault address.
- Returns
Checksummed wstGBP contract address.
- property vault_address: eth_typing.evm.HexAddress
Return the scanner compatibility vault-address alias.
- Returns
The wstGBP contract address.
- property wstgbp_contract: web3.contract.contract.Contract
Return the wstGBP contract interface.
- Returns
Contract bound to this asset’s primary address.
- property name: str
Return the ERC-20 share token name.
- Returns
Human-readable Wren Staked tGBP product name.
- property symbol: str
Return the ERC-20 share token symbol.
- Returns
Wren Staked tGBP share-token symbol.
- property description: str
Return the product description.
- Returns
Short explanation of the Wren Staked tGBP product shape.
- property short_description: str
Return a listing-friendly product summary.
- Returns
Short product description.
- get_notes()
Return the wstGBP product description for vault exports.
Unlike manual vault notes, this description applies to the sole Wren Staked tGBP deployment and is part of its native metadata.
- Returns
Human-readable wstGBP product and redemption information.
- Return type
- property manager_name: str
Return the protocol display name.
- Returns
Wren Staked tGBP protocol name.
- fetch_share_token_address(block_identifier='latest')
Return the Wren Staked tGBP share-token address.
- fetch_share_token()
Fetch Wren Staked tGBP ERC-20 token metadata.
- Returns
Share token details.
- Return type
- fetch_denomination_token_address()
Read the wstGBP purchase token through
gem().- Returns
Checksummed ERC-20 token address used for minting and redemption.
- Return type
- fetch_denomination_token()
Fetch metadata for the wstGBP
gem()token.- Returns
Purchase and redemption token details.
- Return type
- fetch_share_price(block_identifier='latest')
Read Wren Staked tGBP NAV/share from
navprice().
- fetch_total_supply(block_identifier='latest')
Read the outstanding Wren Staked tGBP share supply.
- fetch_total_assets(block_identifier='latest')
Calculate Wren Staked tGBP TVL from supply and NAV/share.
- fetch_nav(block_identifier='latest')
Return Wren Staked tGBP NAV.
- fetch_info()
Return Wren Staked tGBP metadata and NAV source.
- Returns
Onchain denomination token and NAV-source data.
- Return type
- fetch_scan_record_extra_data()
Return Wren Staked tGBP-specific scanner diagnostics.
- fetch_portfolio(universe, block_identifier=None)
Return an empty portfolio for the scan-only adapter.
The Wren Staked tGBP contract can route surplus
gemliquidity to its conduit, so its ERC-20 balance is not a canonical representation of the tokenised asset’s portfolio.- Parameters
universe (eth_defi.vault.base.TradingUniverse) – Ignored.
block_identifier (Optional[Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]]) – Ignored.
- Returns
Empty spot portfolio.
- Return type
- has_block_range_event_support()
Return whether standard vault-flow event reading is supported.
- Returns
Falsebecause Wren Staked tGBP uses bespoke lifecycle events.- Return type
- has_deposit_distribution_to_all_positions()
Return whether deposits distribute directly to positions.
- Returns
Falsebecause the adapter does not model Wren Staked tGBP flows.- Return type
- get_flow_manager()
Reject generic Wren Staked tGBP flow accounting.
- Raises
NotImplementedError – Wren Staked tGBP events are not currently mapped to generic flows.
- Return type
- get_deposit_manager()
Reject generic Wren Staked tGBP transaction construction.
- Raises
NotImplementedError – The contract’s mint/redeem functions use bespoke transaction methods.
- Return type
- get_historical_reader(stateful)
Create a Wren Staked tGBP historical reader.
- Parameters
stateful (bool) – Whether to attach adaptive reader state.
- Returns
Historical reader for supply and NAV/share.
- Return type
- get_fee_data()
Return current Wren Staked tGBP mint and redemption spread fees.
- Returns
Externalised entry and exit fees derived from onchain prices.
- Return type
- get_management_fee(block_identifier)
Return the unknown annual management fee.
- get_performance_fee(block_identifier)
Return the unknown performance fee.
- get_deposit_fee(block_identifier)
Calculate the mint spread above NAV/share.
- get_withdraw_fee(block_identifier)
Calculate the redemption spread below NAV/share.
- get_link(referral=None)
Return the Wren Staked tGBP product documentation link.
- property denomination_token: Optional[eth_defi.token.TokenDetails]
Get the token which denominates the vault valuation
Used in deposits and redemptions
Used in NAV calculation
Used in profit benchmarks
Usually USDC
- Returns
Token wrapper instance.
Maybe None for broken vaults like https://arbiscan.io/address/0x9d0fbc852deccb7dcdd6cb224fa7561efda74411#code
Note
Noneresults are not cached — the next access will retry the on-chain call. This avoids permanently caching a transient RPC failure.
- property deposit_manager: eth_defi.vault.deposit_redeem.VaultDepositManager
Deposit manager assocaited with this vault
- fetch_available_liquidity(block_identifier='latest')
Get the amount of denomination token available for immediate withdrawal.
Only applicable to lending protocol vaults (IPOR, Euler, Morpho, Gearbox, etc.). Non-lending protocols should leave this method unimplemented.
Note: maxRedeem(address(0)) does NOT work as a proxy for available liquidity because it requires a specific address that has already deposited shares. For address(0), balanceOf is always 0, so maxRedeem returns 0 regardless of actual liquidity.
- Parameters
block_identifier (Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]) – Block to query. Defaults to “latest”.
- Raises
NotImplementedError – For non-lending protocol vaults.
- Returns
Amount in denomination token units (human-readable Decimal).
- Return type
- fetch_deposit_closed_reason()
Get human-readable reason why deposits are closed.
Override in protocol-specific subclasses
Default behaviour: assume deposits are always open (return None)
- fetch_deposit_next_open()
Get when deposits will next be open.
For epoch-based vaults (Ostium, D2), return calculated window open time
For non-epoch vaults (Plutus, IPOR, Morpho), return None
Override in protocol-specific subclasses
- Returns
Naive UTC datetime when deposits will next be available, or None if:
Deposits are currently open
Timing is unpredictable (manually controlled)
Protocol does not support timing information
- Return type
- fetch_redemption_closed_reason()
Get human-readable reason why redemptions are closed.
Override in protocol-specific subclasses
Default behaviour: assume redemptions are always open (return None)
- fetch_redemption_next_open()
Get when withdrawals/redemptions will next be open.
For epoch-based vaults (Ostium, D2), return calculated window open time
For non-epoch vaults (Plutus, IPOR, Morpho), return None
Override in protocol-specific subclasses
- Returns
Naive UTC datetime when withdrawals will next be available, or None if:
Withdrawals are currently open
Timing is unpredictable (manually controlled)
Protocol does not support timing information
- Return type
- fetch_utilisation_percent(block_identifier='latest')
Get the percentage of assets currently lent out.
Only applicable to lending protocol vaults (IPOR, Euler, Morpho, Gearbox, etc.). Non-lending protocols should leave this method unimplemented.
- Parameters
block_identifier (Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]) – Block to query. Defaults to “latest”.
- Raises
NotImplementedError – For non-lending protocol vaults.
- Returns
Utilisation as float between 0.0 and 1.0 (0% to 100%).
- Return type
- property flow_manager: eth_defi.vault.base.VaultFlowManager
Flow manager associated with this vault
- get_deposit_manager_capability()
Return static public transaction-adapter support, if any.
This method deliberately does not attempt to construct a manager or query live pause, cap, epoch, balance, allow-list, or liquidity state. Adapters opt in only after their complete deposit and redemption lifecycles have focused coverage.
Noneis therefore the safe default for unknown and protocol-specific vaults.- Returns
Adapter-specific capability object, or
Nonewhen unsupported.- Return type
Optional[eth_defi.vault.deposit_redeem.VaultDepositManagerCapability]
- get_estimated_lock_up()
What is the estimated lock-up period for this vault.
- Returns
None if not know
- Return type
- get_fee_mode()
Get how this vault accounts its fees.
- Return type
- get_flags()
Get various vault state flags from the smart contract.
Override to add status flags
Also add flags from our manual flag list in
eth_defi.vault.flag
- Returns
Flag set.
Do not modify in place.
- Return type
- get_protocol_name()
Return the name of the vault protocol.
- Return type
- get_risk()
Get risk profile of this vault.
- Return type
- has_custom_fees()
Does this vault have fees outside the shared fee model.
Custom fees cause risk in vault comparison because the shared management/performance/deposit/withdraw fee fields cannot describe the full fee structure.
Do not return
Truemerely because a vault implements custom accessors for ordinary management, performance, deposit, or withdraw fees. ReturnTrueonly when some vault fee cannot be reflected in those standard fields as a fee-like value.- Returns
Trueif the vault has fees outside the shared fee model.- Return type
- property info: eth_defi.vault.base.VaultInfo
Get info dictionary related to this vault deployment.
Get cached data on the various vault parameters
- Returns
Vault protocol specific information dictionary
- property share_token: eth_defi.token.TokenDetails
ERC-20 that presents vault shares.
User gets shares on deposit and burns them on redemption