Evaluate Transfer Tool
Check whether participant X can buy or receive position Y.
Planned, not yet shipped. The deployed MCP server is the energy toolset. This general registry tool is designed but not implemented; the shape below may change.
What problem it solves
The evaluate-transfer tool answers "Can participant X buy position Y?" It checks transferability rules, encumbrances, consent requirements, accreditation, and jurisdiction constraints. The LLM can use the result to advise users on transfer feasibility before they initiate an IOI or transfer. It prevents wasted effort on infeasible transfers.
Input schema
The tool accepts an EvaluateRequest:
{
"proposed_transfers": [
{
"position": "string (required) - Position entity_id to transfer",
"seller": "string (required) - Seller participant ID",
"buyer": "string (required) - Buyer participant ID",
"amount_usd": "number (required) - Transfer amount in USD"
}
],
"nav_reference": {
"deal_nav": "number (optional) - NAV for pricing",
"as_of": "string (optional) - NAV as-of date"
},
"requester": "string (required) - Participant ID requesting the evaluation"
}All IDs must exist in Dark Matter. The tool validates both position and participant before evaluating.
Output schema
The tool returns a Verdict:
{
"allowed": "boolean - Whether transfer is allowed",
"conditional": "boolean - Whether transfer requires further action (consent, etc.)",
"checks": [
{
"check": "string - Name of the check",
"status": "pass | fail | conditional",
"detail": "string - Explanation",
"authority": "string (optional) - Legal authority for the check"
}
],
"pending_actions": [
{
"type": "string - Action type (e.g., gp_consent, rofr_notice, lender_consent)",
"party": "string - Party who must act",
"description": "string - What needs to happen",
"authority": "string (optional) - Legal authority"
}
]
}If allowed is true and conditional is false, the transfer can proceed immediately. If conditional is true, pending_actions lists the steps required before settlement.
Idempotency
The tool is idempotent. It performs only read and evaluation operations; no state is modified. Repeated calls return the same result unless underlying data changes.
Side effects
None. The tool does not create IOIs, reservations, or transfers. It only evaluates feasibility.
Required scopes
positions:readparticipants:readtransfers:evaluate(or equivalent evaluation scope)
Safe and unsafe contexts
Safe for all contexts. Read-only evaluation; no writes. Suitable for sandbox and production.
Expected latency
Typically 100–400 ms. The tool fetches position and participant data, then runs the rights engine evaluation.
Example usage
Input:
{
"proposed_transfers": [{ "position": "meg-2026-089", "seller": "part-seller-001", "buyer": "part-buyer-456", "amount_usd": "5000000" }],
"requester": "part-buyer-456"
}Output:
{
"allowed": true,
"conditional": true,
"checks": [
{ "check": "transferability", "status": "pass", "detail": "transfer.transferable = true" },
{ "check": "lockup", "status": "pass", "detail": "Lockup expired 2026-06-01" },
{ "check": "rofr", "status": "conditional", "detail": "ROFR holder must waive within 30 days" },
{ "check": "gp_consent", "status": "conditional", "detail": "GP consent required within 15 days" },
{ "check": "buyer_kyc", "status": "pass", "detail": "KYC cleared" },
{ "check": "buyer_accreditation", "status": "pass", "detail": "Qualified Purchaser verified" }
],
"pending_actions": [
{ "type": "rofr_notice", "party": "fund-sponsor-llc", "description": "30-day ROFR window" },
{ "type": "gp_consent", "party": "GP Holdings LLC", "description": "GP consent with 15-day timeout" }
]
}Common failure modes
- 404 Not Found: Position or participant does not exist. Verify IDs.
- 403 Forbidden: API key cannot access position or participant. Check org/workspace scope.
- Rights engine error: Evaluation failed (e.g., missing rules). Contact support.
Audit records emitted
Dark Matter emits a transfer.evaluated audit event. No transfer intent or execution is recorded.