← Issuer workspace
Contract builder demo

Turn attested balance-sheet variables into Base contract logic.

Pick a template, copy the variable keys, and wire CapState’s Base oracle into covenants, disclosure checks, dashboards, Mini Apps, or structured-product agents. This is a demo surface, not execution infrastructure.

Inspect variablesOracle interfaceSchema

Selected issuer

AA001 · corporate-state-v0 · Ethereum attestation mirrored to Base

fresh state requiredBase oracle readsource-cited inputsdemo onlybytes32 issuer = bytes32("AA001"); ICapStateOracle oracle = ICapStateOracle(0x...); bytes32 stateHash = oracle.latestStateHash(issuer);

Coverage covenant

Require senior claim coverage to stay above a threshold.

bytes32 key = STATE_SENIOR_CLAIM_COVERAGE; (uint256 coverage, uint256 asOf) = oracle.getUint(issuer, key); require(oracle.isFresh(issuer, key), "CapState: stale coverage"); require(coverage >= 125e16, "CapState: coverage below covenant");

Preferred dividend guard

Gate a preferred dividend workflow on unrestricted cash.

(uint256 cashUsd, ) = oracle.getUint(issuer, STATE_CASH_USD_UNRESTRICTED); require(oracle.isFresh(issuer, STATE_CASH_USD_UNRESTRICTED), "CapState: stale cash"); require(cashUsd >= nextTwoDividendsUsd, "CapState: liquidity guard failed");

Collateral freshness trigger

Trigger review when treasury asset data ages out.

bool btcFresh = oracle.isFresh(issuer, STATE_TREASURY_BTC_UNITS); if (!btcFresh) { emit CapStateReviewRequired(issuer, STATE_TREASURY_BTC_UNITS); }

Encumbrance blocker

Block green status if known encumbrances exceed a configured ceiling.

(uint256 liensUsd, ) = oracle.getUint(issuer, STATE_TOTAL_ENCUMBRANCES_USD); require(oracle.isFresh(issuer, STATE_TOTAL_ENCUMBRANCES_USD), "CapState: stale liens"); require(liensUsd <= maxEncumbrancesUsd, "CapState: encumbrance limit exceeded");

For Base Mini Apps

Show a read-only issuer status card, then deep-link to the balance-sheet proof UI for source and freshness.

For credit agents

Pull the same variable keys across issuers to compare coverage, liquidity, and claim-stack freshness.

For structured products

Reference accepted state roots and freshness-checked values without making the product depend on issuer-hosted pages.