Check CSV column rules 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 a requirements object with typed column rules. This checks the specification, not CSV data or natural-language instructions.
{
"requirements": {
"columns": [
{
"name": "id",
"type": "string",
"required": true,
"unique": true
},
{
"name": "amount",
"type": "decimal",
"required": true,
"min": "0",
"max": "100"
}
],
"min_rows": 1
}
}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 validateAcceptanceSpec --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 result contains the validated spec and an empty unsupported list. This confirms the supplied rules are supported; it does not validate a CSV or create rules from prose.
Expected result for this prepared input
{
"schema_version": 1,
"spec": {
"columns": [
{
"name": "id",
"type": "string",
"required": true,
"unique": true
},
{
"name": "amount",
"type": "decimal",
"required": true,
"min": "0",
"max": "100"
}
],
"min_rows": 1
},
"unsupported": [],
"boundary": "Typed requirements only; no natural-language interpretation."
}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.