Check citation overlap with your AI assistant
3 free results per wallet. Signature required; no funding needed. Shared wallets share the allowance.
This is the manual setup reference. Give your AI a complete starter task instead →
Prepare a local trial client.
Run these commands in the terminal your assistant uses. The client is public source; review it before running. It creates an unfunded Base wallet only when you explicitly request one. Keep the private key file locally with owner-only permissions.
python3 -m venv .mekler-venv .mekler-venv/bin/python -m pip install "x402==2.24.0" "eth-account==0.13.7" "signinwithethereum==5.0.1" "abnf==2.8.3" curl -fSLo mekler-trial.py https://api.mekler.ai/clients/trial.py
Supply the input.
Save this JSON as request.json. Supply the claim, citation URLs and any article HTML yourself. No URLs are fetched; overlap does not establish truth or source independence.
{
"claim": "Reported benefit",
"citations": [
{
"id": "a",
"url": "https://a.test",
"html": "<a href=\"https://b.test\">Source</a>"
},
{
"id": "b",
"url": "https://b.test"
}
]
}Create the unfunded trial wallet only once. If mekler-trial-wallet.key already exists, reuse it and run only the execution command below. Keep the same wallet across these walkthroughs.
Run a trial and keep its identity.
.mekler-venv/bin/python mekler-trial.py --new-wallet mekler-trial-wallet.key .mekler-venv/bin/python mekler-trial.py --key-file mekler-trial-wallet.key --operation checkSources --input request.json --request-id mekler-example-001
Use a new request ID for each new input; use the same ID and identical input to recover or retry. New wallets do not create a renewable entitlement: shared-wallet and paid-history rules apply. Never fund this trial wallet just to inspect a sample.
Understand the result.
The supplied HTML creates a citation-link candidate from a to b. independence remains unknown. A candidate is a link to inspect, not proof of claim truth or independence.
Expected result for this prepared input
{
"service": "citation-overlap-checker",
"schema_version": "1",
"shared_origin_groups": [],
"supplied_lineage_links": [],
"shared_link_candidates": [],
"citation_link_candidates": [
{
"from_id": "a",
"to_id": "b",
"locations": [
{
"target_url": "https://b.test/",
"line": 1,
"column": 0,
"anchor_text": "Source"
}
],
"status": "citation_link_candidate"
}
],
"unresolved_citation_ids": [
"a",
"b"
],
"independence": "unknown",
"coverage": {
"citation_count": 2,
"html_document_count": 1
},
"limitations": [
"Supplied lineage is not independently verified.",
"Links may be navigation or unrelated to the claim; candidates are not verified dependencies.",
"No URLs are fetched. Missing links do not establish independence.",
"Claim truth and semantic relevance are not assessed."
]
}Trial exhausted or unavailable?
The client returns the service error and stops. It never removes trial headers or falls back to payment. To use a paid service, inspect a fresh quote with a compatible payment client and explicitly authorize its budget. An unavailable offer does not mean you should create a replacement wallet.