It's broken. It already knows.
Public chargers report faults to their operator over OCPP, the protocol between a charger and its back-office. Teleport turns that report into a job, and the charger's next reports into the proof.
- Who asks
- The charger itself, through its operator's back-office, under a mandate. The operator answers for every task it posts.
- Who does it
- A driver nearby, for a $5 look. The operator's licensed contractor, for the repair. Nobody else goes near the high-voltage side.
- Evidence
- Mostly the charger's own reports: back to Available, energy delivered, no repeat fault. Plus the technician's photos.
- Who pays
- The operator, from a budget per fault. $5 a look, $220 a repair. Example figures.
- You get
- One receipt per fault: what broke, who fixed it, and proof it's charging again.
The charger knows it's broken before anyone else does. It also knows when it's fixed.
Almost none of this needs a model's judgement. The charger reports its own status and its own meter readings; one photo question asks whether it was left safe.
Drive past chargers that are down? Join the contributor waitlist
Voltway, site 44 and Sparkfield are fictional. Prices are illustrative.
Cheapest fix first.
Each step is a task, or no task at all, posted only because the one before didn't work. Most faults never reach an electrician. This one did, and the climb stopped there.
- 00
Remote reset
The back-office restarts the charger. If it comes back, no task is posted at all.
- 01
$5 look
A driver nearby photographs the screen, the cable and the connector, and says if the bay is blocked. Look, don't touch.
- 02
Triage
Fault code plus photos: a cable not seated, visible damage, or something inside the cabinet.
- 03
Licensed repair
The operator's contractor, with the likely part. If the part has to come first, its delivery is a linked task.
- 04
Self-verify
Back to Available, a test session past 1 kWh, the closed panel photographed.
- 05
Hold, then release
80% paid on accept. The last 20% after 72 hours without the same fault.
Each step is created by the outcome of the one before, all in one workflow per connector.
The charger proves its own repair.
Four of the five checks read the charger's own reports or the technician's location. One question goes to a model: was it left safe? A versioned policy, not the model, makes the decision.
| Check | How | By | Result |
|---|---|---|---|
| Back online | The charger's own status reports: connector Faulted, then Available. | Rule | Passed |
| Actually charges | A test session Teleport starts delivers at least 1 kWh, read from the meter. Signed meter data where the hardware has it. | Rule | Passed |
| Technician was there | The tech app's GPS, and the charger's QR code scanned at the start and at the end. | Rule | Passed |
| Left safe | One photo question: panel closed, cable holstered, no damage or exposed wiring? | Model | Passed |
| Fix lasted | No repeat of the same fault code for 72 hours. | Rule | Passed |
Every piece of required evidence comes from the charger itself or from Teleport's own capture, so the proof can reach the top assurance level.
§ 04 · High voltage
Drivers look. Licensed hands fix.
A DC fast charger runs at voltages that kill. The repair task can't reach anyone without a checked licence. Not unlikely: impossible, by the operator's mandate and by Teleport's safety policy.
- Who posts
- Each charger, signed with its own key
- Look tasks
- Onboarded drivers nearby. Photos only, no tools, no panels.
- Repairs
- Sparkfield's licensed electricians, DC fast-charger certified
- Fallback
- Marketplace electricians with a licence checked for this state
- Budget
- Up to $600 per fault
- Never
- High-voltage work routed to anyone without a checked licence
Checked when the task is posted and again at matching. Its hash goes into every proof.
What needs care.
Lethal voltages, a payer that owns the source of the evidence, and hardware that drops out and comes back. Without these, it's an automated way to send the wrong person.
Licensed hands only
Fast chargers run at voltages that kill. A repair task can't reach anyone without a checked licence, and drivers get look tasks only. The app says so in plain words.
The payer owns the meter
The operator runs the charger and the back-office. Signed telemetry, a test session Teleport starts, and the technician's own photos make “fixed” hard to fake either way.
Chargers flap
They drop out and come back. A fault has to last 10 minutes and survive a remote reset before anything is posted, and each connector gets one open workflow.
Blocked isn't broken
A petrol car in the bay looks like a charger nobody uses. The $5 look tells them apart, so an electrician isn't sent to a parking problem.
Warranty rules
Some hardware has to be serviced by the maker's certified techs or the warranty goes. That's a capability on the task, not something the technician has to remember.
A new fault is a new task
If C2 fails again with a different code after the fix, that's a new job, not a clawback. The holdback only covers the fault that was fixed.
Fixed, and still fixed three days later.
The technician is paid 80% when the repair is accepted. The other 20% follows after 72 hours with no repeat of the same fault. The operator gets a record of every fault and every verified fix.
Dollars pay the technician. The proof shows the work. Nobody needs $PORT to post a repair or get paid for one.
- Task
- Repair · charger C2, site 44
- Requested by
- Charger C2, under Voltway's mandate
- Performed by
- Human · licensed electrician
- Licence
- Checked · California, valid
- Evidence
- Charger telemetry + tech capture
- Test session
- 1.2 kWh delivered
- Policy
- evse-repair v1.0
- Decision
- Accepted
- Paid
- $176 on accept · $44 after 72 h
STATUS: FINAL
Telemetry: hashes on-chain. The raw logs stay with the operator.
For builders.
A DEVICE requester, a ROBOT_EXCEPTION trigger, a REPAIR through a DIRECT contractor, a TRANSITION from Faulted to Available, and evidence that is almost all ATTESTED_DEVICE.
PhysicalTaskSpec · the repairTAP v0.2 · preview, subject to change
{
"schema": "teleport.tap.physical-task",
"version": "0.2.0",
"title": "Repair charger C2 at site 44 — connector lock failure",
"category": "REPAIR",
"requester": {
"requesterType": "DEVICE",
"principal": { "principalType": "ORGANIZATION" },
"mandateId": "mdt_voltway_selfservice_v4",
"authentication": { "method": "DEVICE_ATTESTATION" }
},
"trigger": { "type": "ROBOT_EXCEPTION", "sourceRef": "ocpp:site44:C2:connector1" },
"fulfillment": {
"mode": "DIRECT",
"designatedPerformers": [{ "fleetId": "contractor_sparkfield_techs", "actorType": "HUMAN" }]
},
"relations": {
"workflowId": "wf_site44_c2_fault",
"followUpOf": "task_site44_c2_look"
},
"actorRequirement": {
"permittedActorTypes": ["HUMAN"],
"requiredCapabilities": [
{ "capability": "LICENSE.ELECTRICIAN", "attributes": { "jurisdiction": "US-CA", "verified": true } },
{ "capability": "EVSE.DCFC_SERVICE" }
]
},
"completionConditions": [
{ "type": "TRANSITION", "id": "back_online", "subjectRef": "ocpp:site44:C2:connector1",
"from": { "status": "Faulted" }, "to": { "status": "Available" },
"verificationMethod": "DETERMINISTIC", "minimumEvidenceOrigin": "ATTESTED_DEVICE" },
{ "type": "MEASUREMENT", "id": "test_session", "metric": "energy_delivered",
"unit": "Wh", "min": 1000, "verificationMethod": "DETERMINISTIC" },
{ "type": "SEMANTIC", "id": "left_safe",
"question": "Is the panel closed, the cable holstered, and no damage or exposed wiring visible?",
"verificationMethod": "JEV" },
{ "type": "DURATION", "id": "no_recurrence", "eventRef": "ocpp:fault:ConnectorLockFailure",
"minMs": 259200000, "verificationMethod": "DETERMINISTIC" }
],
"safety": { "policyId": "high-voltage-licensed-only-v1" },
"economics": {
"performerPayUsdCents": 22000,
"settlementAssets": ["FIAT"],
"requesterPayment": { "method": "MANDATE_BUDGET", "maxSpendUsdCents": 60000 }
},
"popw": { "required": true, "assurancePolicyId": "HIGH_ASSURANCE", "proofTiming": "WORKFLOW" },
"timing": { "expiresInSeconds": 86400, "priority": "HIGH" }
}Proposed additions this use case surfaced
- Holdback
- Pay most of it on accept and the rest when a durability condition holds: a percentage, a release condition, a window. The task is done at acceptance; the holdback has its own small state. Useful for any repair or install.
- Escalation ladder
- An ordered list of task templates (look, triage, repair), each one's outcome deciding the next. The same standing-order idea as a camera's watch rule or a campaign, triggered by an outcome.
- Licensed capabilities
- A licence with its issuer, jurisdiction, expiry and how it was checked, which matching can enforce. Safety depends on it.
- Trigger adapters
- Standard adapters for OCPP, building systems and robot fleet managers that turn a native fault into a TAP trigger, with the event hashed the same way every time.
- Uptime proofs
- A rollup per charger over time: every fault, every response, every verified fix. Uptime backed by proof instead of the operator's own report.
The awkward part in v0.2: no_recurrence keeps the whole task open for 72 hours and holds all of the pay. That's what holdback is for. Developer docs
Charge-point operators
Chargers down more often than you'd like?
Tell us about your sites and your contractors. We're working with design partners on repairs that prove themselves.