Your AI booked Business Class. You approved Economy. Without a delegation chain, every booking agent's mandate is just a prompt — not a cryptographic constraint.
MT Travel is a booking verification API for autonomous travel agents. It issues and verifies TravelAgentCredentials — W3C Verifiable Credentials (VCs) signed with Ed25519 — with delegation chains that bind each level of travel authority to enforceable constraints. 6 REST endpoints, 3 MCP tools, free during Early Access.
What Is a TravelAgentCredential
A TravelAgentCredential is a W3C VC that authorizes an AI booking agent to make travel reservations on behalf of a company or individual. It contains the agent's DID, the principal's DID, spend limits, allowed segments (flight, hotel, car rental), cabin class restrictions, and an optional delegation chain.
{
"type": ["VerifiableCredential", "AuthorizedAgentCredential", "TravelAgentCredential"],
"credentialSubject": {
"id": "did:moltrust:booking-agent-001",
"principalDID": "did:moltrust:acme-corp",
"authorization": {
"spendLimit": 5000,
"currency": "USDC",
"segments": ["flight", "hotel", "car_rental"],
"cabinClass": "economy",
"hotelMaxStarRating": 3
},
"delegationChain": [
{ "from": "did:moltrust:acme-corp", "to": "did:moltrust:travel-agency", "spendLimit": 10000 },
{ "from": "did:moltrust:travel-agency", "to": "did:moltrust:booking-agent-001", "spendLimit": 5000 }
]
}
}
The Delegation Chain
The delegation chain models real-world travel authority:
Company (Principal) — total budget: $10,000
└─ Travel Agency (Delegatee) — spend limit: $5,000/trip
└─ Booking Platform (Sub-Delegatee) — cabin: economy, hotel: 3-star max
Each delegate's spend limit must be ≤ its delegator's limit. Constraints can only be narrowed — never widened. If the booking platform tries to book Business Class when the chain says economy, the request is rejected.
Verify a Booking: One POST Request
import requests
receipt = requests.post(
"https://api.moltrust.ch/guard/travel/verify",
json={
"vc": travel_agent_credential,
"booking": {
"segment": "flight",
"amount": 850,
"currency": "USDC",
"cabinClass": "economy",
"merchant": "united.com"
}
}
).json()
print(receipt["result"]) # "approved", "review", or "rejected"
print(receipt["guardScore"]) # 0-100 trust score
print(receipt["receiptId"]) # Unique receipt ID for audit trail
Trust scores below 20 are rejected. Scores 20-49 are flagged for review. 50+ approved.
The 10-Step Verify Pipeline
- VC Signature — Ed25519 signature verification
-
Expiry Check —
validUntilmust be in the future - DID Resolution — Agent and principal DIDs must resolve
- Segment Authorization — Requested segment must be allowed
- Spend Limit — Amount within credential's limit
- Currency Match — Booking currency matches credential
- Daily Cap — Daily transaction limit not exceeded
- Trust Score — MolTrust reputation evaluation
- Delegation Chain — Every link validated, constraints narrow monotonically
- Traveler Manifest — Booking matches specified travelers
Issue a TravelAgentCredential
vc = requests.post(
"https://api.moltrust.ch/guard/vc/travel-agent/issue",
json={
"agentDID": "did:moltrust:booking-agent-001",
"principalDID": "did:moltrust:acme-corp",
"spendLimit": 5000,
"currency": "USDC",
"segments": ["flight", "hotel", "car_rental"],
"cabinClass": "economy",
"hotelMaxStarRating": 3,
"travelers": ["alice@acme.com"],
"delegationChain": [
{ "from": "did:moltrust:acme-corp", "to": "did:moltrust:travel-agency", "spendLimit": 10000 },
{ "from": "did:moltrust:travel-agency", "to": "did:moltrust:booking-agent-001", "spendLimit": 5000 }
],
"validDays": 90
}
).json()
$5 USDC via x402 on Base L2 — free during Early Access.
The 6 Endpoints
| Endpoint | Method | Auth | Cost |
|---|---|---|---|
/travel/info |
GET | Public | Free |
/travel/schema |
GET | Public | Free |
/travel/verify |
POST | EA free | Free (EA) |
/vc/travel-agent/issue |
POST | EA free | Free (EA) |
/travel/receipt/:id |
GET | Public | Free |
/travel/trip/:tripId |
GET | Public | Free |
All endpoints prefixed with /guard/: api.moltrust.ch/guard/travel/...
MCP Integration
3 MCP tools in the moltrust-mcp-server package (36 tools total, v0.8.0):
pip install moltrust-mcp-server
claude mcp add moltrust -- uvx moltrust-mcp-server
-
mt_travel_info— service info and schema -
mt_travel_verify— verify agent booking -
mt_travel_issue_vc— issue TravelAgentCredential
Use Cases
Corporate Travel Policy Enforcement: A company issues a TravelAgentCredential with economy-only cabin class, 3-star hotel max, and a $5,000 spend limit. Every reservation is verified against these constraints. Business Class bookings are rejected at the delegation chain step.
Multi-Level Agency Delegation: A travel management company receives authority from a corporate client and delegates to an AI booking platform. The chain ensures the platform can never exceed the agency's limits.
Trip-Level Aggregation: Multi-leg trips (flight + hotel + car) generate receipts under one tripId. The trip endpoint returns all receipts with aggregated spend totals.
Developer guide: moltrust.ch/blog/travel-developer-guide.html
Travel info: api.moltrust.ch/guard/travel/info
Part of MolTrust v0.8.0 — W3C Verifiable Credentials for autonomous agents. Free during Early Access.
Top comments (0)