Skip to Content
Stacks Market

Assets

Purpose: Asset registry with oracle configuration. Maps asset addresses to IDs and stores oracle feed data per asset.

List of Core Functions

Queries:

  • get-nonce: Get total asset count
  • get-reverse: Get asset ID by address
  • find: Get asset details by address
  • lookup: Get asset details by ID
  • get-bitmap: Get enabled assets bitmask
  • enabled: Check if assets are enabled
  • get-status: Get asset status (collateral/debt enabled)
  • get-asset-status: Get asset status by address
  • status-multi: Get status for multiple assets

Admin:

  • insert: Register new asset with oracle config
  • update: Update asset oracle configuration
  • enable: Enable asset for collateral or debt
  • disable: Disable asset for collateral or debt

Function Parameters

get-nonce

Get total number of registered assets.

ParameterTypeDescription
(none)-No parameters

Returns: (response uint uint) - Asset count


get-reverse

Get asset ID by contract address.

ParameterTypeDescription
assetprincipalAsset contract address

Returns: (response (buff 1) uint) - Asset ID buffer or error


find

Get asset details by contract address.

ParameterTypeDescription
assetprincipalAsset contract address

Returns: (response {...} uint) - Asset details or error

Fields:

  • id: (buff 1) - Asset ID
  • addr: principal - Contract address
  • decimals: uint - Token decimals
  • oracle: {…} - Oracle configuration

lookup

Get asset details by ID.

ParameterTypeDescription
iduintAsset ID

Returns: (response {...} uint) - Asset details or error

Fields:

  • id: (buff 1) - Asset ID
  • addr: principal - Contract address
  • decimals: uint - Token decimals
  • oracle: {…} - Oracle configuration (type, ident, callcode, max-staleness)

get-bitmap

Get enabled assets bitmask. Bits 0-63 represent collateral, bits 64-127 represent debt.

ParameterTypeDescription
(none)-No parameters

Returns: uint - Enabled assets bitmask


enabled

Check if asset mask is subset of enabled assets.

ParameterTypeDescription
maskuintAsset mask to check

Returns: bool - True if all assets in mask are enabled


get-status

Get asset status including collateral/debt enabled flags.

ParameterTypeDescription
iduintAsset ID

Returns: (response {...} uint) - Asset status or error

Fields:

  • All fields from lookup()
  • id: uint - Asset ID
  • collateral: bool - Collateral enabled
  • debt: bool - Debt enabled

get-asset-status

Get asset status by contract address.

ParameterTypeDescription
addressprincipalAsset contract address

Returns: (response {...} uint) - Asset status or error

Fields: Same as get-status


status-multi

Get status for multiple assets at once.

ParameterTypeDescription
ids(list 64 uint)List of asset IDs

Returns: (list 64 {...}) - List of asset statuses


insert

Register new asset with oracle configuration. Asset IDs assigned sequentially.

ParameterTypeDescription
ft<ft-trait>Asset token contract
oracle-data{ type: (buff 1), ident: (buff 32), callcode: (optional (buff 1)), max-staleness: uint }Oracle configuration

Returns: (response uint uint) - Assigned asset ID or error

Authorization: DAO executor only

Oracle fields:

  • type: Oracle type (0x00=Pyth, 0x01=DIA, 0x02=Mock)
  • ident: Oracle feed identifier (32 bytes)
  • callcode: Optional price transformation (0x00=stSTX ratio, 0x01-0x06=zToken indexes)
  • max-staleness: Maximum age in seconds before price considered stale

Note: Asset decimals auto-detected from token contract


update

Update asset oracle configuration.

ParameterTypeDescription
assetprincipalAsset contract address
oracle-data{ type: (buff 1), ident: (buff 32), callcode: (optional (buff 1)), max-staleness: uint }New oracle configuration

Returns: (response bool uint) - Success or error

Authorization: DAO executor only

Note: Cannot change asset address or decimals, only oracle config


enable

Enable asset for collateral or debt usage.

ParameterTypeDescription
assetprincipalAsset contract address
collateralboolTrue to enable as collateral, false to enable as debt

Returns: (response bool uint) - Success or error

Authorization: DAO executor only

Note: Updates bitmap: collateral uses bits 0-63, debt uses bits 64-127


disable

Disable asset for collateral or debt usage.

ParameterTypeDescription
assetprincipalAsset contract address
collateralboolTrue to disable as collateral, false to disable as debt

Returns: (response bool uint) - Success or error

Authorization: DAO executor only

Note: Updates bitmap to remove asset from enabled set

Last updated on