I thought the allocation row had failed to refresh.
Same wallet. Same amount. Same vesting date. I clicked out, back in, opened the Sign Protocol record in another tab, then TokenTable again, then both side by side like that would somehow make the mismatch confess faster. First I blamed cache. Then the import job. Then myself, because late screens do that thing where your eyes start inventing consistency.
But TokenTable was not confused.
It had already pulled the credential set from Sign Protocol and done exactly what it was supposed to do. Beneficiaries mapped. Amounts assigned. Schedule fixed. Clean table. Very calm table. The kind of calm that makes people think the hard part is over.
It wasn’t.
Upstream, Sign Protocol had already moved. One credential was corrected after review. Another was revoked. A status field tied to eligibility changed after the allocation table had already been generated. No alarm. No hard failure. Just a neat table still reflecting the earlier state while the credential layer had already left that state behind.
And once TokenTable starts releasing actual value from those Sign Protocol inputs, the problem stops looking like sync drift and starts looking like accountability.
The table is still deterministic.
Just not to the truth that exists now.