U2A
Know what drove your returns. Deterministic, no-LLM portfolio attribution: send position start/end values, dated cash flows, and a reporting period; get Modified Dietz and XIRR returns, alpha against BTC, ETH, stETH, or a benchmark you supply prices for, plus per-position contribution. Caller-declared data-quality flags, a calculation hash, and an optional EIP-191 signature support transparent reporting and verification for fund managers, DAO treasuries, and their LPs.
Offering
- Provider
- www.u2a.com.au
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Financial Analysis
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://www.u2a.com.au/api/mcp/portfolio-attribution- MIME type
- Not provided
- First seen
- 2026-10-16T01:50:24.663Z
- Last seen
- Tags
- Finance, portfolio-attribution, crypto-portfolio, xirr, modified-dietz
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.03 USDC
Atomic price: 30000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "30000",
"payTo": "0x886e7a8d46E239A9d54F48da163B04bb002B14a0"
}
]Observed health
- Status
- Healthy
- Latest latency
- 73 ms
- Average latency
- 499 ms
- HTTP status
- 200
- Last checked
- Reachability
- 100% over 14 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"benchmarks": {
"description": "Benchmarks to compare against (1-5), e.g. BTC, ETH, or stETH with staking yield.",
"items": {
"properties": {
"end_price": {
"description": "Benchmark price at period end. Number, or object shaped like start_value.",
"type": [
"number",
"object"
]
},
"id": {
"description": "Benchmark name, e.g. BTC, ETH, stETH.",
"type": "string"
},
"income_return": {
"description": "Extra period return from yield, e.g. 0.022. Default 0. Number, or object shaped like start_value.",
"type": [
"number",
"object"
]
},
"start_price": {
"description": "Benchmark price at period start. Number, or object shaped like start_value.",
"type": [
"number",
"object"
]
}
},
"required": [
"id",
"start_price",
"end_price"
],
"type": "object"
},
"maxItems": 5,
"minItems": 1,
"type": "array"
},
"currency": {
"default": "USD",
"description": "Currency label for all values; no conversion is done.",
"type": "string"
},
"period": {
"description": "The measurement period.",
"properties": {
"end": {
"description": "Last day of the measurement period (YYYY-MM-DD).",
"format": "date",
"type": "string"
},
"start": {
"description": "First day of the measurement period (YYYY-MM-DD).",
"format": "date",
"type": "string"
}
},
"required": [
"start",
"end"
],
"type": "object"
},
"positions": {
"description": "Holdings to analyse (max 500), each with start/end value and any money moved in or out.",
"items": {
"properties": {
"end_value": {
"description": "Market value at period end. Number, or object shaped like start_value.",
"type": [
"number",
"object"
]
},
"flows": {
"description": "Capital moved into (+) or out of (−) the position during the period. At most 1000 flows in total across all positions.",
"items": {
"properties": {
"amount": {
"description": "Positive = bought / added capital; negative = sold / withdrew.",
"type": "number"
},
"date": {
"description": "Date the money moved (inside the period).",
"format": "date",
"type": "string"
},
"source": {
"description": "Where the flow came from, e.g. a tx hash or statement.",
"type": "string"
},
"status": {
"description": "How reliable this flow is. Default \"provided\".",
"enum": [
"verified",
"derived",
"provided",
"estimated",
"assumed"
],
"type": "string"
}
},
"required": [
"date",
"amount"
],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"id": {
"description": "Ticker, token symbol, contract address, or internal id.",
"type": "string"
},
"income": {
"description": "Cash income taken out (staking, dividends). Default 0. Number, or object shaped like start_value.",
"type": [
"number",
"object"
]
},
"start_value": {
"description": "Market value at period start. A number, or {value, status, source, observed_at}.",
"oneOf": [
{
"minimum": 0,
"type": "number"
},
{
"properties": {
"observed_at": {
"description": "When observed (ISO).",
"format": "date-time",
"type": "string"
},
"source": {
"description": "URL, tx hash, block, file or API.",
"maxLength": 500,
"type": "string"
},
"status": {
"description": "How it was obtained. Default \"provided\".",
"enum": [
"verified",
"derived",
"provided",
"estimated",
"assumed"
],
"type": "string"
},
"value": {
"description": "The number.",
"minimum": 0,
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
]
}
},
"required": [
"id",
"start_value",
"end_value"
],
"type": "object"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
}
},
"required": [
"period",
"positions",
"benchmarks"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}Output schema
{
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}