● Attribution
Crypto
Asset maps, timelines, exchange hypotheses, stablecoin exposure.
| POST | /v1/crypto/asset-map | Create crypto asset map |
| POST | /v1/crypto/transaction-timeline | Create transaction timeline |
| POST | /v1/crypto/exchange-hypotheses | Create exchange hypotheses |
| POST | /v1/crypto/stablecoin-exposure | Analyze 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
| Field | Type |
|---|---|
| matter_id | string |
| wallets | array |
| chains | array |
| include_stablecoins | boolean |
| include_exchanges | boolean |
| source_refs | array |
# 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
| Field | Type |
|---|---|
| matter_id | string |
| wallets | array |
| from | date-time |
| to | date-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
| Field | Type |
|---|---|
| matter_id | string |
| wallets | array |
| min_confidence | number |
# 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
| Field | Type |
|---|---|
| matter_id | string |
| wallets | array |
| assets | array |
# 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
| Parameter | Type |
|---|---|
| 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"
}
}