{"api":"v1","generated_at":"2026-11-02T01:16:31.314Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/api-zfinia-com-x402-v1-mapping-contract-audit-3d56cf","pinned_page":"https://tollindex.com/e/api-zfinia-com-x402-v1-mapping-contract-audit-3d56cf/at/2026-11-01T21-59Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-11-01T21:59:41.591Z","snapshot_stamp":"2026-11-01T21-59Z","endpoint":{"slug":"api-zfinia-com-x402-v1-mapping-contract-audit-3d56cf","canonical_url":"https://api.zfinia.com/x402/v1/mapping-contract-audit","resource":"https://api.zfinia.com/x402/v1/mapping-contract-audit","http_method":"POST","type":"http","x402_version":2,"registries":[],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Audit a lookup table against its contract. The finding that matters most: one source mapping to several targets, because a lookup built from it is not a function and whichever row is read last wins. Also reports required sources that are unmapped, so anything carrying them falls through, targets outside the permitted set, and - when a one-to-one mapping is declared - a target reached from several sources.","service_name":"Mapping Contract Audit","declared_category":null,"declared_tags":["data quality","reference data","mapping","completeness","developer tooling"],"route_template":null,"registry_updated":"2026-10-04T08:09:41.538Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"mapping contract audit","category":"search","first_observed_by_toll":"2026-10-04T12:19:28.655Z","last_observed_by_toll":"2026-10-04T21:22:41.206Z","observation_began":"2026-09-10"},"presence":{"listed_now":false,"first_absent_at":"2026-10-05T05:36:47.069Z","delisting_confirmed_at":"2026-10-05T14:34:15.385Z","events":[{"registry":"cdp","at":"2026-10-04T12:19:28.656Z","event":"listed"},{"registry":"cdp","at":"2026-10-05T05:36:47.069Z","event":"delisted"},{"registry":"cdp","at":"2026-10-05T14:34:15.385Z","event":"delisting_confirmed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.12 USDC","amount_units":0.12,"decimals_known":true,"pay_to":"0x25e8245f07d5e4873987293dad666afbe56a9608","scheme":"exact"}],"counters":{"observed_at":"2026-10-04T21:22:41.206Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-10-04T08:09:35.993Z"},"validation":{"latest":{"observed_at":"2026-10-04T13:00:31.389Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-10-04"},"uptime":[{"days":7,"observed":0,"passed":0,"ratio":null},{"days":30,"observed":2,"passed":2,"ratio":1},{"days":90,"observed":2,"passed":2,"ratio":1}],"history_90d":[{"observed_at":"2026-10-04T13:00:31.389Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-04","state_changed":false},{"observed_at":"2026-10-04T12:27:15.763Z","state":"pass","failed_checks":[],"run_id":"new-after-daily-2026-10-04","state_changed":true}]},"seller":{"wallet":"0x25e8245f07d5e4873987293dad666afbe56a9608","page":"https://tollindex.com/seller/0x25e8245f07d5e4873987293dad666afbe56a9608","endpoints":179,"hosts":5},"reports":0,"registry_record":{"cdp":[{"tags":["data quality","reference data","mapping","completeness","developer tooling"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0x25e8245f07d5e4873987293dad666afbe56a9608","amount":"120000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":60}],"quality":{"lastCalledAt":"2026-10-04T08:09:35.993Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.zfinia.com/x402/v1/mapping-contract-audit","extensions":{"bazaar":{"info":{"input":{"body":{"csv":"country,region\nAU,APAC\nNZ,APAC\nGB,EMEA\nGB,UK\nIE,\nUS,AMER\n","source_column":"country","target_column":"region","expect_injective":true,"required_sources":["AU","NZ","GB","US","FR"],"permitted_targets":["APAC","EMEA","AMER","LATAM"]},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"valid":false,"limits":{"maxRows":5000,"maxListed":200,"maxColumns":64,"maxCsvBytes":262144,"maxDatasets":10,"maxFindings":500,"maxCategories":1000,"maxKeyColumns":4},"passed":false,"complete":false,"findings":[{"row":6,"code":"TARGET_EMPTY","detail":"Row 6 maps IE to nothing, which is a gap rather than a mapping.","source":"IE"},{"row":4,"code":"SOURCE_MAPS_TO_SEVERAL_TARGETS","detail":"GB maps to 2 different targets, so a lookup is not a function and whichever row is read last wins.","source":"GB"},{"code":"TARGET_MAPPED_FROM_SEVERAL_SOURCES","detail":"APAC is the target of 2 sources, and a one-to-one mapping was expected.","target":"APAC"}],"row_count":6,"request_id":"example-request","service_id":"mapping_contract_audit","assumptions":["Values are canonicalised exactly, so a numeric code written 01 and 1 is the same value and a conflict between them is found.","One source mapping to several targets is always a finding, because a lookup built from it is not a function. One target receiving several sources is only a finding when a one-to-one mapping is declare..."],"limitations":["Structure and coverage of the mapping supplied. Whether each individual mapping is correct is not assessed.","valid is true only when the table was fully read, every required source was mapped, every target was permitted, and no source was ambiguous."],"observed_at":"2026-10-02T00:00:00.000Z","not_examined":["PERMITTED_TARGET_UNUSED: LATAM is permitted and nothing maps to it, so any handling for it is never reached."],"coverage_rate":0.8,"finding_count":5,"service_version":"1.0.0","findings_by_code":{"TARGET_EMPTY":1,"TARGET_NOT_PERMITTED":1,"REQUIRED_SOURCE_UNMAPPED":1,"SOURCE_MAPS_TO_SEVERAL_TARGETS":1,"TARGET_MAPPED_FROM_SEVERAL_SOURCES":1},"unmapped_sources":["FR"],"ambiguous_sources":[{"rows":[4,5],"source":"GB","targets":["EMEA","UK"]}],"empty_source_count":0,"empty_target_count":1,"distinct_source_count":4,"distinct_target_count":4,"ambiguous_source_count":1}}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["csv","source_column","target_column"],"properties":{"csv":{"type":"string","maxLength":262144},"delimiter":{"type":"string","maxLength":1,"minLength":1},"source_column":{"type":"string","maxLength":256},"target_column":{"type":"string","maxLength":256},"expect_injective":{"type":"boolean"},"required_sources":{"type":"array","items":{"type":"string","maxLength":256},"maxItems":1000,"minItems":1},"permitted_targets":{"type":"array","items":{"type":"string","maxLength":256},"maxItems":1000,"minItems":1}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}}}},"description":"Audit a lookup table against its contract. The finding that matters most: one source mapping to several targets, because a lookup built from it is not a function and whichever row is read last wins. Also reports required sources that are unmapped, so anything carrying them falls through, targets outside the permitted set, and - when a one-to-one mapping is declared - a target reached from several sources.","lastUpdated":"2026-10-04T08:09:41.538Z","serviceName":"Mapping Contract Audit","x402Version":2}]}}