Design and testing. A prototype contract exists for this series and is tested on forks of Ethereum and on a local chain; nothing is deployed, no issuer integration exists, and no real transaction has been made.
xStocks (Backed) — the legal issuing entity is to be taken from the issuer’s own documents, not assumed here
A status is an admission decision; the lines under them are evidence, dated, for whoever decides.
Ondo (Global Markets) — the legal issuing entity is to be taken from the issuer’s own documents, not assumed here
while A was frozen a claim of A reverted and a claim of B paid; minting was refused; after the resume the A claim paid
the reconciliation found A SHORTFALL by exactly what was seized and B MATCHED; the condition is DARK on A alone; on chain, claims of A halt and claims of B pay
a holder claimed B with no site involved — the permit is on chain — and the index, started afterwards, caught the claim up
with the node unreachable the index reported HEAD_UNREAD and kept its cursor and events; the reconciliation reported UNKNOWN for both components (STALE conditions), not a shortfall; when the node answered again the index continued from the same cursor with nothing to re-read
an issuer record that stops answering is a STALE condition naming the source; the last archived record stays on file and nothing is inferred from an example instead
the operator role was handed to a 2-of-3 multisig; the former single key could no longer stop minting; one signer’s proposal did not stop it and a second confirmation did; the resume needed two again; the index recorded both with their reasons
One lot holds 10 units of A (AAPLx) and 20 units of B (AAPLon). Cap: 1,000 lots of liability, reserved included.
Both deposits and the receipt would be one atomic transaction. The receipt cannot be sent or sold; exit is by claim, one component at a time.
| Component | Active | Reserved | Owed | Held | Surplus / short |
|---|---|---|---|---|---|
| A | 0 | 0 | 0 | 0 | 0 |
| B | 0 | 0 | 0 | 0 | 0 |
Nothing yet. Mint some lots, or replay the worked example.
What the index holds for an address in this series: active receipts, the units they entitle, and open exit claims per component. Claims are listed apart from receipts and never counted as backing, so nothing is counted twice.
Nothing has been read. An address that has never touched the series reads as zero receipts and zero claims, not as an error.
A status is an admission decision; the lines under them are evidence, dated, for whoever decides.
No party is named under both components in the documents read. That is a fact about the documents, not a finding of independence: component B’s broker-dealer and custodian are described but not named.
A role with no name is a role the documents describe without naming the party. It is left empty on purpose: a name filled in from a partner list or from memory would be the kind of claim this desk refuses. The pages these lines come from are watched for change by hash; a changed page is a note on the desk and a reason to read them again.
no reviewed deployment is configured for apple-s1; nothing is read from a chain for it
an estimate from dated sources, each named with both of its times; not a quote, not an offer, and never totalled while a component has no price. one raw AAPLx, as balanceOf reports it, is treated as exposure to one AAPL share: the issuer applies its corporate-action multiplier to balances on EVM chains; the price is an equity feed on another chain, not the token’s own market.
44 passing · 0 failing at commit 06623ed429 · 2026-09-12 17:46 UTC · solc 0.8.30 · fuzz seed 0x7727ea51… × 256 runs
a passing run is not a review and not an audit; it says these cases held at this commit with this seed
| Role | Address | Code | Symbol | Dec. | asset() vs claim | Answers as token | Behind it |
|---|---|---|---|---|---|---|---|
| A raw token | 0x9d275685…ec890a | true | AAPLx | 18 | not applicable | yes | impl. 0x65c40d62… |
| A wrapper v1 | 0x5aa7649f…9c0724 | true | wAAPLx | 18 | matches | yes | impl. 0x14f37168… |
| A wrapper v2 | 0x943bf64d…c9de8f | true | wAAPLx | 18 | matches | yes | impl. 0x76c6851e… |
| B issuer token | 0x14c3abf9…7b2d4c | true | AAPLon | 18 | not applicable | yes | beacon 0x985462c9… |
Read daily beside them: the raw token’s corporate-action multiplier 1.003269 · the current wrapper converts one share to 1.003269 raw. A move here is a corporate action, journalled as one; it is not a fault.
Read at the block before the activation and at the activation block, on archive state. contracts/test/fork/AppleCorporateActionFork.t.sol on two forks of Ethereum at the block before and at the activation block, archive state; nothing sent. Not shown: the same for a split or a reverse split: this activation was a dividend reinvestment; anything about component B across this block: its dividends are documented as reflected in price, not balance, and are not read here; that the next activation behaves the same: each is a new event on the record.
The wrapper held 10.1615 of the raw token and had 10.1284 shares in all at that block; AAPLon had 16,557.0748 tokens in all. contracts/test/fork/AppleComponentsFork.t.sol on a fork of Ethereum; balances set by storage, no holder impersonated. Rerun: .
a Hardhat node on one machine with mock components; not a public chain. Run by contracts/scripts/drill.ts (the chain half) and tests/positions-drill.test.ts (the site half), run by hand.
Single-stablecoin deposit and an automatic router · Cash redemption · Dynamic rebalancing · Leverage, lending, insurance, bridges · Uncurated stock lists and permissionless series · Free transfer of receipts and a market for stuck claims · Reward tokens, buybacks, and governance able to change the backing of an old series.
cd contracts && npm run test:forkexecution gas by gasleft() deltas inside one call, with the real wrapper as A and real AAPLon as B: storage already touched is warm, so a real transaction pays cold access, the 21,000 base and its calldata on top; an input to a cost comparison, not a price. No gas price and no token price is applied here: a cost in money needs both, dated.
| Address | EIP-1967 implementation | Proxy admin | owner() | paused() |
|---|---|---|---|---|
| raw token 0x9d275685… | 0x65c40d62…f19b | 0x696c685a…a085 | 0x49754062…3a65 | not answered |
| wrapper v2 0x943bf64d… | 0x76c6851e…5583 | 0x31206300…8bfa | 0x49754062…3a65 | not answered |
| wrapper v1 0x5aa7649f… | 0x14f37168…ad48 | 0xe39fffff…0cc7 | 0x49754062…3a65 | not answered |
| B · AAPLon 0x14c3abf9… | behind beacon 0x985462c9…1598 | no slot set | not answered | not answered |
Every address with an implementation slot set can have its code replaced by whoever controls its admin, and a beacon proxy by whoever controls its beacon; that is a fact about the instrument, not a fault. The three xStocks contracts answer owner() with one and the same address: one party stands behind the raw token and both wrappers. AAPLon answers neither owner() nor paused(); its code stands behind a beacon. Who those addresses belong to is not read from the chain and is not asserted here.