AssetHub
AssetHub is where physical energy data meets the chain. Operators post a bond, register the devices behind each asset and publish readings. Oracles publish reference values that are aggregated into a median.
Providers
| Role | Can |
|---|---|
| Meter | Register devices and submit readings |
| Device | Register devices and submit readings |
| Oracle | Submit values to topics |
| Bridge | Reserved for bridged data sources |
- Registration is permissionless:
registerProvider(role, displayName, bond), with the bond paid in the bond token. The bond token is the first allowlisted settlement token, for example USDC, and must be at leastminBond. - Providers can top up or withdraw their bond above the minimum. They can deregister and recover it once they have no active devices.
- Registration does not require KYC. Sanctioned addresses are stopped by the sequencer filter rather than by AssetHub itself.
Slashing and jail
Only governance can slash: slashProvider(provider, reason). Each slash removes a fraction of the bond (5% by default), sends it to the slash sink and counts an infraction. After a set number of infractions (3 by default), the provider is jailed (7 days by default) and cannot submit. Governance unjails with unjailProvider.
Devices
- Meter and Device providers register devices:
registerDevice(deviceId, deviceType, jurisdiction, pubkey). - Operators can record an attestation hash and firmware version (
attestDevice) and update the type or jurisdiction. - A device can be revoked by its operator or governance. Revocation is permanent.
- A token binds the devices that produce its revenue. At creation, each device must be active and operated by the token's admin.
Readings
submitReading(deviceId, periodStart, periodEnd, unit, iotValue, operationalValue) records production for a period:
iotValueis what the device itself measured;operationalValueis what the operator's system (billing, SCADA) recorded.- The reading is marked verified when the two agree within the tolerance (2% by default):
|a − b| × 10000 ≤ max(a, b) × toleranceBps. - Governance can require verified readings only, or require a device attestation before any reading.
What "verified" means. Both values are submitted by the same operator, so verification checks internal consistency, not independent truth. And because a token's devices must be operated by its issuer, a token's production data is reported by its issuer. AssetHub makes that data bonded, timestamped, public and attributable. Independent verification — third-party meters, auditors — comes from how issuers and governance choose operators. The chain cannot provide it by itself.
Topics
Governance creates topics (createTopic(topicId, description, minSources)), for example a regional wholesale price or a grid emissions factor. Oracle providers submit values, and the topic's value is the median of current submissions once at least minSources have reported. Asset prices for trading and lending come from Chainlink, not from AssetHub topics.
Parameters (governance)
| Parameter | Default |
|---|---|
| Minimum bond | 1 unit of the bond token (e.g. 1 USDC) |
| Reading tolerance | 2% |
| Slash fraction | 5% per slash |
| Jail after | 3 infractions |
| Jail duration | 7 days |
| Reject unverified readings | Off |
| Require device attestation | Off |
The live values are shown on the Energy data page.
Events
ProviderRegistered, BondIncreased, BondWithdrawn, ProviderDeregistered, ProviderSlashed, ProviderUnjailed, DeviceRegistered, DeviceUpdated, DeviceAttested, DeviceRevoked, ReadingSubmitted, TopicCreated, ValueSubmitted.