KINETIC
KINETIC APIProtocol · API reference
MD-Version 2026-06-11 Request access

Attribution

Crypto

Asset maps, timelines, exchange hypotheses, stablecoin exposure.

POST/v1/crypto/asset-mapCreate crypto asset map
POST/v1/crypto/transaction-timelineCreate transaction timeline
POST/v1/crypto/exchange-hypothesesCreate exchange hypotheses
POST/v1/crypto/stablecoin-exposureAnalyze stablecoin exposure
GET/v1/crypto/asset-map/{map_id}Get crypto asset map
POST/v1/crypto/asset-map

Create crypto asset map

Maps known and suspected crypto exposure: wallets, token balances, transaction timelines, exchange hypotheses, stablecoins, NFTs, DeFi, bridges, and confidence scores.

scope · crypto:mapidempotent · Idempotency-Key
§ Body parameters
FieldType
matter_idstring
walletsarray
chainsarray
include_stablecoinsboolean
include_exchangesboolean
source_refsarray
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/crypto/asset-map \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "include_stablecoins": true,
  "include_exchanges": true,
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/crypto/asset-map",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "matter_id": "string",
        "wallets": [
            "string"
        ],
        "chains": [
            "string"
        ],
        "include_stablecoins": True,
        "include_exchanges": True,
        "source_refs": [
            {
                "source_id": "...",
                "source_type": "...",
                "title": "...",
                "uri": "...",
                "hash": "...",
                "chain_of_custody_id": "...",
                "admissibility_notes": "..."
            }
        ]
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/crypto/asset-map", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "matter_id": "string",
    "wallets": [
      "string"
    ],
    "chains": [
      "string"
    ],
    "include_stablecoins": true,
    "include_exchanges": true,
    "source_refs": [
      {
        "source_id": "...",
        "source_type": "...",
        "title": "...",
        "uri": "...",
        "hash": "...",
        "chain_of_custody_id": "...",
        "admissibility_notes": "..."
      }
    ]
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "map_id": "string",
  "matter_id": "string",
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ],
  "token_exposures": [
    {
      "asset": "string",
      "network": "string",
      "amount": 123.45,
      "usd_value": 123.45,
      "wallet": "string"
    }
  ],
  "exchange_hypotheses": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ],
  "stablecoin_exposure": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/crypto/transaction-timeline

Create transaction timeline

Builds a source-linked transaction timeline for a wallet set, matter, token, chain, or target cluster.

scope · crypto:timelineidempotent · Idempotency-Key
§ Body parameters
FieldType
matter_idstring
walletsarray
fromdate-time
todate-time
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/crypto/transaction-timeline \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "from": "2026-06-01T12:00:00Z",
  "to": "2026-06-01T12:00:00Z"
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/crypto/transaction-timeline",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "matter_id": "string",
        "wallets": [
            "string"
        ],
        "from": "2026-06-01T12:00:00Z",
        "to": "2026-06-01T12:00:00Z"
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/crypto/transaction-timeline", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "matter_id": "string",
    "wallets": [
      "string"
    ],
    "from": "2026-06-01T12:00:00Z",
    "to": "2026-06-01T12:00:00Z"
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "timeline_id": "string",
  "events": [
    {
      "transaction_hash": "string",
      "timestamp": "2026-06-01T12:00:00Z",
      "from_address": "string",
      "to_address": "string",
      "asset": "string",
      "amount": 123.45,
      "notes": "string"
    }
  ]
}
POST/v1/crypto/exchange-hypotheses

Create exchange hypotheses

Creates exchange/VASP off-ramp hypotheses with confidence, evidence, and packet readiness.

scope · crypto:exchangeidempotent · Idempotency-Key
§ Body parameters
FieldType
matter_idstring
walletsarray
min_confidencenumber
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/crypto/exchange-hypotheses \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "min_confidence": 123.45
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/crypto/exchange-hypotheses",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "matter_id": "string",
        "wallets": [
            "string"
        ],
        "min_confidence": 123.45
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/crypto/exchange-hypotheses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "matter_id": "string",
    "wallets": [
      "string"
    ],
    "min_confidence": 123.45
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "items": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ]
}
POST/v1/crypto/stablecoin-exposure

Analyze stablecoin exposure

Identifies freeze-capable or issuer-remediation-relevant stablecoin exposure and packet opportunities.

scope · crypto:stablecoinidempotent · Idempotency-Key
§ Body parameters
FieldType
matter_idstring
walletsarray
assetsarray
# sandbox: full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/crypto/stablecoin-exposure \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f8a-bd31" \
  -d '{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "assets": [
    "string"
  ]
}'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/crypto/stablecoin-exposure",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "4f8a-bd31",
    },
    json={
        "matter_id": "string",
        "wallets": [
            "string"
        ],
        "assets": [
            "string"
        ]
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/crypto/stablecoin-exposure", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "4f8a-bd31",
  },
  body: JSON.stringify({
    "matter_id": "string",
    "wallets": [
      "string"
    ],
    "assets": [
      "string"
    ]
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "items": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ]
}
GET/v1/crypto/asset-map/{map_id}

Get crypto asset map

Gets crypto asset map and source manifest.

scope · crypto:read
§ Path parameters
ParameterType
map_id
required · path
string
# sandbox: full surface, no production data
curl https://sandbox.api.microndelta.com/v1/crypto/asset-map/map_91Lk \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    "https://sandbox.api.microndelta.com/v1/crypto/asset-map/map_91Lk",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/crypto/asset-map/map_91Lk", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "map_id": "string",
  "matter_id": "string",
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ],
  "token_exposures": [
    {
      "asset": "string",
      "network": "string",
      "amount": 123.45,
      "usd_value": 123.45,
      "wallet": "string"
    }
  ],
  "exchange_hypotheses": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ],
  "stablecoin_exposure": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}