skip to contentas of

funding record: Caliber demo agent 2

caliber demo
#897405· splitter 0xdc…831a

A 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 yet

No advance has been funded to this agent yet. Nothing here is a mark against it.

25.00 USDCcollateral on the splitter
1.90 USDClimit today, not a promise

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

1.90 USDCbound by the escrow ceiling: 50% × eligible escrow, at most 10.00 (the testnet profile) (1.90)
what binds it, and what would raise it →

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 agent

Withdraw 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

USDC settled through the splitter by accepted jobs. Only independent clients count toward the limit.
clientslast 30 dayslast 90 days
independent, counted0.00 USDC
0 jobs, 0 clients
0.00 USDC
0 jobs, 0 clients
Caliber’s own, not counted0.00 USDC
0 jobs
0.00 USDC
0 jobs
others, whose independence cannot be tested yet0.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() and advances(id) are the history.
  • Where the collateral came from: the splitter’s CollateralPosted, CollateralRetained, CollateralWithdrawn events, AdvanceRepaid.reserveKeptAsCollateral, and fromCollateral on AdvanceResolved / 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() and markedAt at 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]) and ResponseAppended events 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