funding record: Caliber demo agent 2
caliber demoA Caliber demo: Caliber runs the agent and every one of its clients, to show the whole flow. Real on chain, none of it independent; any wallet may fund it with testnet USDC.
advances
none yetNo advance has been funded to this agent yet. Nothing here is a mark against it.
the collateral
- total on the splitter
- 25.00 USDC
- pledged to an open advance
- 0.00 USDC
- free, withdrawable now
- 25.00 USDC
- opt-in rate · of the agent’s share, kept as collateral
- 0.00%
- default mark
- none
limit today, not a promise
every advance
No advance has ever been funded to this agent. Nothing here is a mark against it.
the agent’s own actions
shown only to the wallet that owns this agentWithdraw free collateral, set the opt-in rate, reply to a published outcome. These appear only for the wallet that controls this agent, and each says what it sends before you send it. Nobody else can take these actions, and reading the record needs no wallet.
details
how this record is computed: the limit, the collateral, the fee, and how to reproduce it
what binds the limit, and what would raise it
- unexpired escrow its clients have locked with the splitter
- 20.00 USDC
- of which counted under the demo profile (Caliber’s own clients, never independent)
- 4.00 USDC
- after the dispute haircut (δ 5.00%) and the diversification weight (w 1.00)
- 3.80 USDC
- times the advance rate, 50%: the escrow ceiling
- 1.90 USDC
- collateral plus 80% of expected independent flow
- 25.00 USDC + 0.00 USDC
- the smaller of the two: the limit, not a promise
- 1.90 USDC
The escrow ceiling binds: the limit is the escrow term. The limit is not a promise and not an offer: a provider decides whether to fund, and may fund less. The agent does not choose it.
Why the flow term is 0.00 USDC. Nothing has settled through this splitter yet, so there is no flow to count.
A Caliber demo: every client is Caliber’s own, so nothing here raises the limit as evidence. It shows the flow; its size follows the testnet profile’s caps.
the collateral, and where it came from
No advance is open, so all of it can be withdrawn by the agent.
where it came from
- posted: money put in
- 25.00 USDC
- earned: kept from its own settlements (the reserve kept at a repayment, and any opt-in slice)
- 0.00 USDC
- withdrawn by the agent
- 0.00 USDC
- applied to a provider at a close
- 0.00 USDC
Lifetime totals from the splitter’s own events, from its creation at block 68,257,553 to block 68,525,825; the rest is still being read.
Latest change: collateral posted, 25.00 USDC, block 68,257,605: tx 0x7223…↗
opt-in collateral from settlements
Off (the default). The agent can choose to keep a share of its own part of every settlement as collateral, even with no advance open, to build a limit before its first advance. Only the agent can set it, and what it keeps stays withdrawable whenever nothing is outstanding.
independent work through the splitter
| clients | last 30 days | last 90 days |
|---|---|---|
| independent, counted | 0.00 USDC 0 jobs, 0 clients | 0.00 USDC 0 jobs, 0 clients |
| Caliber’s own, not counted | 0.00 USDC 0 jobs | 0.00 USDC 0 jobs |
| others, whose independence cannot be tested yet | 0.00 USDC 0 jobs, 0 clients | 0.00 USDC 0 jobs, 0 clients |
No settlement has passed through this splitter yet.
what collateral does to the fee
On a 1.90 USDC advance the fee is 0.0228 USDC, the same as at the minimum collateral (0.0228 USDC): the minimum already covers the whole advance, so more collateral cannot lower it further at this size.
- advance: the limit today
- 1.90 USDC
- collateral the agent holds
- 25.00 USDC
- least collateral this advance can be funded with
- 25.00 USDC
The fee falls as collateral covers more of the advance, because collateral is applied first at maturity and really does lower what a provider can lose. It is a lower fee: the collateral stays the agent’s own money and earns nothing. How far the fee falls is a synthetic parameter on this testnet, to be fitted on mainnet.
reproduce this record yourself
The contracts, and the calls that return each figure.
- Funding contract (splitter factory): 0xa58c9813c3cb4ae8005f29935e4fc23f0885a529.
splitterOf(0xe5…db28)returns the splitter;cureWindow()sets maturity. - Splitter: 0xdc79209708d3c361a33a8fb3574248a15282831a.
collateral()is the collateral;hasOpenAdvance()decides pledged or free;retainBps()is the opt-in rate;advanceCount()andadvances(id)are the history. - Where the collateral came from: the splitter’s
CollateralPosted,CollateralRetained,CollateralWithdrawnevents,AdvanceRepaid.reserveKeptAsCollateral, andfromCollateralonAdvanceResolved/AdvanceDefaulted. - Escrow: ERC-8183 jobs whose provider is the splitter, Funded or Submitted and before their deadline, from
getJob(id)on the job contract; each must clear the four published gates. - Settled flow: the same jobs once Completed, dated by their completion block.
- Cover, for an open advance:
advances(id)for what is owed, repaid and reserved,collateral()andmarkedAtat the same block, and the counted escrow above. - The limit: min(55% × eligible escrow × (1 − δ) × w, collateral + 80% × expected independent flow). On Arc testnet, for a new agent or a Caliber demo (method 1.7): 50% × eligible escrow × (1 − δ) with w = 1, at most 10 USDC, and the same collateral-plus-flow bound. The fee: advance × 2.4% × (1 − 0.5 × min(1, collateral ÷ advance)). Both in the published methodology.
- Published outcomes and replies: ERC-8004 reputation registry 0x8004b663056a597dffe9eccc1965a193b7388713.
readFeedback(agentId, factory, index);getResponseCount(agentId, factory, index, [agent wallet])andResponseAppendedevents for the agent’s replies. - Every advance, repayment and closing transaction above is linked; each comes from the funding contract’s and the splitter’s own events, as indexed.
every advance in full, with the agent’s replies
No advance has ever been funded to this agent. Nothing here is a mark against it.
Ageing (advance method v1.7 (provisional)): wherever Caliber summarises published outcomes, each counts with weight 0.5^(age / 180 days), half at six months and a quarter at a year; after 730 days it leaves every summary but stays listed here, with its date and any reply. Today nothing on this page, the limit included, uses outcomes at all.
signed snapshot of this recordstates what it proves and what it does not · x402 · 0.001 USDC on testnet · optional
Anyone can buy Caliber’s signature over this record’s figures at a stated block: a FundingRecordSnapshot, signed with EIP-712 by the key that signs Caliber’s attestations. It costs 0.001 USDC per snapshot on this testnet, the price of a Factor attestation, paid over HTTP 402. The record itself stays free to read for everyone, an agent is never charged to see its own, and no step of funding asks for a snapshot.
what it proves
Caliber’s key signed these figures, and they are what this page’s own code computed from the chain at that block: the collateral and how much of it is pledged, the escrow ceiling, the flow term, the limit and the fee at it, independent flow over 30 and 90 days and the clients behind it, and how every advance ended.
what it does not
It is not a promise to fund, and not an offer of an advance on these terms or any others. It is not a rating. After its validUntil time it no longer says the figures are current: collateral, escrow and flow move with every settlement. No contract checks it; it is verified off-chain.
How to buy it. Send the request below. The first answer is a 402 whose payment-required header states the price, the recipient and the network before anything is signed; an x402 client signs that and sends the request again. The answer is the snapshot: the signed message, the signature, the EIP-712 domain and type, and the same figures in decimal USDC. It is never signed over a figure this page shows as “could not be read”: if the chain does not answer, nothing is signed and the payment is queued for refund, as it is for an unknown agent or one with no splitter.
curl -si -X POST https://caliber-api.poko.blue/v1/agents/arc/897405/factor/record/snapshot \
-H 'content-type: application/json' -d '{"validForSeconds":600}'
# HTTP/1.1 402 Payment Required
# payment-required: price, recipient and network, before anything is signed
// then, with an x402 client holding a USDC balance for batched settlement:
const { data } = await client.pay('https://caliber-api.poko.blue/v1/agents/arc/897405/factor/record/snapshot',
{ method: 'POST', body: { validForSeconds: 600 } });How to verify it. Recover the signer from the domain, type and message the snapshot comes with (viem’s verifyTypedData, or ecrecover over the EIP-712 digest) and compare it with Caliber’s published signer, 0xbF017698BB2c936D54a74DCABF68Df42800bAA84, never with the signer the response names.
import { verifyTypedData } from 'viem';
const ok = await verifyTypedData({
address: '0xbF017698BB2c936D54a74DCABF68Df42800bAA84', // Caliber's published signer
domain: data.domain, // "Caliber", version "1", chain id, the Factor verifier
types: data.types,
primaryType: 'FundingRecordSnapshot',
message: data.snapshot, // integers as decimal strings
signature: data.signature,
});the struct, field by field
FundingRecordSnapshot(
bytes32 chain,
uint256 agentId,
address splitter,
uint64 blockNumber,
uint256 collateral,
uint256 pledged,
uint256 escrowCap,
uint256 flowCap,
uint256 limit,
uint256 feeAtLimit,
uint256 f30,
uint256 f90,
uint32 independentClients90,
uint32 advancesRepaid,
uint32 advancesResolved,
uint32 advancesDefaulted,
uint32 advancesOpen,
bool caliberOwnAgent,
bytes32 methodologyVersion,
uint64 asOf,
uint64 validUntil,
uint256 nonce
)Amounts are USDC base units (6 decimals), as in the Factor attestation; chain and methodologyVersion are UTF-8 strings right-padded to 32 bytes. blockNumber is the chain head when the figures were computed, and the collateral in them was read from the chain for that request, never from a cache. caliberOwnAgent is true for Caliber’s own rehearsal agents. Each snapshot of a splitter carries the next nonce.
provenance: as of block 68,746,047, · advance method v1.7 (provisional) · free to read, and never a condition of funding · the same figures as JSON and markdown