← The evidence ledger
Evidence row 119900
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://saylorinnovations.com/api/finance/mortgage-affordability
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 4515a2fb28f0c33e371a0da6432cc5a32b1ced1ade6c240c2c602661c3372049
- Leaf
- 0xd36bacc05cf481a19ed97deefbb16721aeb1c49b5c2312b428ca9f120ad83902
What was observed
{
"endpoints": [
[
"x402",
"https://saylorinnovations.com/api/finance/mortgage-affordability"
]
],
"name": "Saylor Innovations Data Desk",
"owner_address": "0xa2a8df0f7caabea4e120a2568118f141569fc8aa",
"raw": {
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"assetTransferMethod": "eip3009",
"facilitatorOnly": true,
"memo": "saylor:datadesk:mortgage-afforda",
"name": "USD Coin",
"note": "Base settles through an x402 facilitator. Send payload.signature and payload.authorization (EIP-3009); there is no self-submitted path on this network.",
"version": "2"
},
"maxTimeoutSeconds": 120,
"network": "eip155:8453",
"payTo": "0xA2A8dF0f7CaaBEa4e120a2568118f141569fc8aa",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"assetTransferMethod": "eip3009",
"facilitatorOnly": true,
"memo": "saylor:datadesk:mortgage-afforda",
"name": "USD Coin",
"note": "Polygon settles through an x402 facilitator. Send payload.signature and payload.authorization (EIP-3009); there is no self-submitted path on this network.",
"version": "2"
},
"maxTimeoutSeconds": 120,
"network": "eip155:137",
"payTo": "0xA2A8dF0f7CaaBEa4e120a2568118f141569fc8aa",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"extra": {
"assetTransferMethod": "eip3009",
"facilitatorOnly": true,
"memo": "saylor:datadesk:mortgage-afforda",
"name": "USD Coin",
"note": "Arbitrum settles through an x402 facilitator. Send payload.signature and payload.authorization (EIP-3009); there is no self-submitted path on this network.",
"version": "2"
},
"maxTimeoutSeconds": 120,
"network": "eip155:42161",
"payTo": "0xA2A8dF0f7CaaBEa4e120a2568118f141569fc8aa",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP",
"memo": "saylor:datadesk:mortgage-afforda",
"reference": "4qQjiGypLHscmWX4F64mqFoJN3WJ83JwGtKykXnbQ1qp",
"session": "eyJhcnRpY2xlSWQiOiJkYXRhZGVzazptb3J0Z2FnZS1hZmZvcmRhYmlsaXR5IiwicmVmZXJlbmNlIjoiNHFRamlHeXBMSHNjbVdYNEY2NG1xRm9KTjNXSjgzSndHdEt5a1huYlExcXAiLCJyZWNpcGllbnQiOiI3TFNqZnJKZjhmTnNCOFZBOXU3TjNXRW4yNXNtUUxwb2IzU3Z5VXZYYWN5NyIsIm1pbnQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsIm1pbkFtb3VudCI6MTAwMDAsImV4cCI6MTc5MjM4MTY2NTU2Mn0.EF94_aJk8vTl50SRhfnfyXkrrtbRBeyqM2aWrp__BBk"
},
"maxTimeoutSeconds": 120,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "7LSjfrJf8fNsB8VA9u7N3WEn25smQLpob3SvyUvXacy7",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"extra": {
"feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP",
"memo": "saylor:datadesk:mortgage-afforda",
"reference": "CkZoRrVNJ1aYKvo6RgG16YJBrKv6ybCCBWJtWsYwLVqS",
"session": "eyJhcnRpY2xlSWQiOiJkYXRhZGVzazptb3J0Z2FnZS1hZmZvcmRhYmlsaXR5IiwicmVmZXJlbmNlIjoiQ2tab1JyVk5KMWFZS3ZvNlJnRzE2WUpCckt2NnliQ0NCV0p0V3NZd0xWcVMiLCJyZWNpcGllbnQiOiI3TFNqZnJKZjhmTnNCOFZBOXU3TjNXRW4yNXNtUUxwb2IzU3Z5VXZYYWN5NyIsIm1pbnQiOiJFczl2TUZyemFDRVJtSmZyRjRIMkZZRDRLQ29Oa1kxMU1jQ2U4QmVud05ZQiIsIm1pbkFtb3VudCI6MTAwMDAsImV4cCI6MTc5MjM4MTY2NTU2Mn0.vVcdFjXxwI6TiwprvOKVf6xkSpfArt5Sm--XuupjyLw"
},
"maxTimeoutSeconds": 120,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "7LSjfrJf8fNsB8VA9u7N3WEn25smQLpob3SvyUvXacy7",
"scheme": "exact"
},
{
"amount": "92231",
"asset": "So11111111111111111111111111111111111111112",
"extra": {
"memo": "saylor:datadesk:mortgage-afforda",
"native": true,
"note": "Native SOL: send lamports with a system transfer, not an SPL transfer. Price is quoted live and this quote expires in 120s.",
"quotedLamports": "95084",
"reference": "GDwNNuLqmDAzXZdSuvaZ2ejHREfe34N4DAWAbSpB4TeW",
"session": "eyJhcnRpY2xlSWQiOiJkYXRhZGVzazptb3J0Z2FnZS1hZmZvcmRhYmlsaXR5IiwicmVmZXJlbmNlIjoiR0R3Tk51THFtREF6WFpkU3V2YVoyZWpIUkVmZTM0TjREQVdBYlNwQjRUZVciLCJyZWNpcGllbnQiOiI3TFNqZnJKZjhmTnNCOFZBOXU3TjNXRW4yNXNtUUxwb2IzU3Z5VXZYYWN5NyIsIm1pbnQiOm51bGwsIm1pbkFtb3VudCI6OTIyMzEsImV4cCI6MTc5MjM4MTY2NTU2Mn0.QiG-JJY5tgM1fg4h126QBY2JEB2Ybv9OEpq4RBctJ1o",
"solUsdPrice": 105.17
},
"maxTimeoutSeconds": 120,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "7LSjfrJf8fNsB8VA9u7N3WEn25smQLpob3SvyUvXacy7",
"scheme": "exact"
}
],
"description": "Maximum home price and loan from income, debts, down payment and rate using the 28/36 rules, with tax, insurance and HOA in the monthly total",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"annual_income": "120000",
"apr": "6.5",
"down_payment": "60000",
"monthly_debts": "500"
},
"type": "http"
},
"output": {
"example": {
"affordable": true,
"annual_income": 120000,
"binding_rule": "front-end ratio",
"down_payment": 60000,
"down_payment_percent": 14.1,
"gross_monthly_income": 10000,
"max_home_price": 425465,
"max_loan": 365465,
"max_monthly_housing": 2800,
"monthly": {
"hoa": 0,
"insurance": 100,
"principal_and_interest": 2309.99,
"property_tax": 390.01,
"total": 2800
},
"monthly_debts": 500,
"note": "Planning estimate using debt-to-income ratios; lenders also weigh credit score, reserves and loan program limits.",
"source": "Front-end and back-end debt-to-income rules (28/36 by default)"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"annual_income": {
"description": "Gross yearly income",
"type": "string"
},
"apr": {
"description": "Mortgage rate in percent",
"type": "string"
},
"down_payment": {
"description": "optional down payment",
"type": "string"
},
"monthly_debts": {
"description": "optional monthly debt payments",
"type": "string"
}
},
"required": [
"annual_income",
"apr"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"affordable": {
"description": "True when a positive loan amount fits the budget",
"type": "boolean"
},
"annual_income": {
"description": "Annual income",
"type": "number"
},
"binding_rule": {
"description": "Binding rule",
"type": [
"string",
"null"
]
},
"down_payment": {
"description": "Down payment",
"type": [
"number",
"null"
]
},
"down_payment_percent": {
"description": "Down payment, as a percentage",
"type": [
"number",
"null"
]
},
"gross_monthly_income": {
"description": "Gross monthly income",
"type": [
"number",
"null"
]
},
"max_home_price": {
"description": "Max home price",
"type": "number"
},
"max_loan": {
"description": "Max loan",
"type": "number"
},
"max_monthly_housing": {
"description": "Max monthly housing",
"type": "number"
},
"monthly": {
"description": "Monthly values",
"properties": {
"hoa": {
"description": "Monthly HOA fees",
"type": [
"number",
"null"
]
},
"insurance": {
"description": "Monthly insurance",
"type": [
"number",
"null"
]
},
"principal_and_interest": {
"description": "Principal and interest",
"type": [
"number",
"null"
]
},
"property_tax": {
"description": "Property tax",
"type": [
"number",
"null"
]
},
"total": {
"description": "Total number of matching items",
"type": [
"number",
"null"
]
}
},
"type": "object"
},
"monthly_debts": {
"description": "Monthly debts",
"type": [
"number",
"null"
]
},
"note": {
"description": "Caveat or context for reading the result",
"type": "string"
},
"source": {
"description": "Data source the values come from",
"type": "string"
}
},
"required": [
"max_monthly_housing",
"max_home_price"
],
"type": "object"
},
"type": {
"const": "json",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791811517/bazaar-icons/bc5e2b3d111ebbef.jpg",
"lastUpdated": "2026-10-19T03:45:45.607Z",
"quality": {
"l30DaysTotalCalls": 2,
"l30DaysUniquePayers": 2,
"lastCalledAt": "2026-10-19T03:45:45.357Z"
},
"resource": "https://saylorinnovations.com/api/finance/mortgage-affordability",
"serviceName": "Saylor Innovations Data Desk",
"tags": [
"how much house can i afford",
"maximum mortgage for my income",
"home price from salary and down",
"28 36 rule home affordability",
"mortgage budget with debts"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Maximum home price and loan from income, debts, down payment and rate using the 28/36 rules, with tax, insurance and HOA in the monthly total"
}What the leaf hashes
{"body":"4515a2fb28f0c33e371a0da6432cc5a32b1ced1ade6c240c2c602661c3372049","id":119900,"kind":"listing","method":"baseline/1","observed_us":1793025616912855,"prev":null,"subject":"x402_bazaar:https://saylorinnovations.com/api/finance/mortgage-affordability","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xd36b7f4f6c63a3511357cdca82f68a845baf3c1bd18b304a80792d4d249e80fb
- 0x741cfea488daa80ad976bd43b921d27611a70a6d6bf2457f7e480434e9aa636a
- 0x12bf9019301ef6fe66bf2e9faf5de60288d759ba1babd4916a3d06c9916f2587
- 0xc27c95ca7546c2c0cad08185b281623cec536457f0b24fa704206a51f0edd413
- 0x0f11720b67659a971e2341114564e06d4aceff96b7c4f2bf4583451aa81fabdd
- 0x9dc0dfb80172d1e24eadbe7f2e08dfbe51b4dbfd507914b2becccedf71826e27
- 0x535421c3fbef3e74e2e56f51e50a538bdfe75bd04f335b37ff6c9e5113440c6d
- 0x524cbae057f276a559c5440b5fd4f966ed8167d5321a9c6b5ac86d579ef6a8c2
- 0x42bbccbb422c591c5e9cc66f160ea72e0ff83629e23fd162fa4cb22d31530292
- 0x0834e939cfa9df57864320cb906e871c291dd8cc7aa8327c208c14867fb03a20
- 0x14362d8e1df4e5c0cf9c6949986f8f51c6a0b5605b593e145aade16c5f5c871a
- 0x9f6b360f1992898cb3f17e45d0bf5a96f946d7eaf9705a57af03c151a407d239
- 0x889eefefef2d4457fe6114f397df813a5cbb85011a6f40309b54ddcd4aba3bd1
- 0xefabf1105e09cf52c12c58e60cbb5048b9ac3f02631d1816a926e14bdd86fbdf
- 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae