Liquidity
List Liquidity Providers
List active liquidity providers for a market
GET
/
lending-external-securities-v2
/
api
/
positions
/
{marketId}
/
providers
curl "https://api.trusset.org/lending-external-securities-v2/api/positions/{marketId}/providers" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/positions/${marketId}/providers`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const vaultFunded = data.providers.filter((p) => p.source === 'vault');
{
"success": true,
"data": {
"providers": [
{
"id": "cmsw2k9r40011cghx3b8e7qtl",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x4d0cfe39a3431b145d1a1393d901a36d459a1b13",
"amountDeposited": "750000.0",
"sharesOwned": "735294.117647058823529411",
"currentValue": "751284.442118",
"active": true,
"depositedAt": "2026-09-09T09:05:00.000Z",
"withdrawnAt": null,
"source": "vault",
"vault": {
"id": "cmssh8t2u0003cghxkx1w1fwd",
"name": "Trusset Prime Demo Vault",
"symbol": "TPV"
}
},
{
"id": "cmsw1f6d20009cghx0p4n5wka",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x2b6ed29a95753c3ad948348e3e7b1a251080ffb9",
"amountDeposited": "250000.0",
"sharesOwned": "250000.0",
"currentValue": "254911.302447",
"active": true,
"depositedAt": "2026-09-08T14:20:00.000Z",
"withdrawnAt": null,
"source": "wallet"
}
]
}
}
{
"success": false,
"error": {
"code": "MARKET_NOT_FOUND",
"message": "Market not found. marketId is the id of a market of this instance as GET /lending-external-securities-v2/api/markets returns it."
}
}
Returns the market’s active liquidity providers, newest first. Before reading, the endpoint reconciles the stored records against the market contract, so share balances and deposits reflect the chain where they can be read. The reconciliation runs at most once a minute per market, so a record can trail the chain by up to a minute. If the chain cannot be read, the reconciliation is skipped and stored values are returned. A market with no stored providers then answers
503 CHAIN_READ_FAILED instead of a list. An empty list can still miss a deposit made in the last minute.
On current markets only the operator wallet and the vaults the market admin registered can deposit directly. A wallet that deposited before its market moved to that rule keeps its shares and can still redeem them, so it can still appear here.
For an authoritative single-provider balance, use Get Provider Balance, which reads the market contract directly.
Path Parameters
string
required
Response Fields
object
Show child attributes
Show child attributes
array
Active provider records ordered by
depositedAt descending.Show child attributes
Show child attributes
string
Record ID.
string
Market ID.
string
Provider address, lowercased.
string
Total the provider has deposited, in borrow asset units, as the market contract records it. Withdrawals do not reduce it, so it is not the provider’s current stake.
string
LP shares held, at 18 decimals.
string
What the shares are worth now, in borrow asset units:
value from the market’s getLpInfo, read live with this call. Unlike amountDeposited, it falls with withdrawals and moves with interest and losses. null when the read failed.boolean
Always
true in this response. Fully withdrawn providers are excluded.string
ISO 8601 timestamp of when Trusset first recorded the provider, reset when the reconciliation finds that a fully withdrawn provider has deposited again. It is the recording time, not the block time.
string
null for every provider in this response, because fully withdrawn providers are excluded.string
vault when the provider address is a vault registered with Trusset, funding the market on its depositors’ behalf. wallet otherwise.object
Present when
source is vault. Carries the vault’s id, and its name and symbol when the vault belongs to your instance. On another institution’s vault both are null: the funding is visible, the vault’s own identity is not.string
Present when the vault is a pocket of a vault group. The group’s name when the vault belongs to your instance,
null on another institution’s.string
Present with
vaultGroupName. The pocket’s settlement currency, such as USD or EUR, or null when its asset is not a known settlement token (stablecoin) on its network.curl "https://api.trusset.org/lending-external-securities-v2/api/positions/{marketId}/providers" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/positions/${marketId}/providers`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const vaultFunded = data.providers.filter((p) => p.source === 'vault');
{
"success": true,
"data": {
"providers": [
{
"id": "cmsw2k9r40011cghx3b8e7qtl",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x4d0cfe39a3431b145d1a1393d901a36d459a1b13",
"amountDeposited": "750000.0",
"sharesOwned": "735294.117647058823529411",
"currentValue": "751284.442118",
"active": true,
"depositedAt": "2026-09-09T09:05:00.000Z",
"withdrawnAt": null,
"source": "vault",
"vault": {
"id": "cmssh8t2u0003cghxkx1w1fwd",
"name": "Trusset Prime Demo Vault",
"symbol": "TPV"
}
},
{
"id": "cmsw1f6d20009cghx0p4n5wka",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x2b6ed29a95753c3ad948348e3e7b1a251080ffb9",
"amountDeposited": "250000.0",
"sharesOwned": "250000.0",
"currentValue": "254911.302447",
"active": true,
"depositedAt": "2026-09-08T14:20:00.000Z",
"withdrawnAt": null,
"source": "wallet"
}
]
}
}
{
"success": false,
"error": {
"code": "MARKET_NOT_FOUND",
"message": "Market not found. marketId is the id of a market of this instance as GET /lending-external-securities-v2/api/markets returns it."
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
MISSING_MARKET_ID | 400 | marketId is longer than 100 characters |
MARKET_NOT_FOUND | 404 | No market with this ID on your instance |
⌘I
curl "https://api.trusset.org/lending-external-securities-v2/api/positions/{marketId}/providers" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/positions/${marketId}/providers`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const vaultFunded = data.providers.filter((p) => p.source === 'vault');
{
"success": true,
"data": {
"providers": [
{
"id": "cmsw2k9r40011cghx3b8e7qtl",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x4d0cfe39a3431b145d1a1393d901a36d459a1b13",
"amountDeposited": "750000.0",
"sharesOwned": "735294.117647058823529411",
"currentValue": "751284.442118",
"active": true,
"depositedAt": "2026-09-09T09:05:00.000Z",
"withdrawnAt": null,
"source": "vault",
"vault": {
"id": "cmssh8t2u0003cghxkx1w1fwd",
"name": "Trusset Prime Demo Vault",
"symbol": "TPV"
}
},
{
"id": "cmsw1f6d20009cghx0p4n5wka",
"marketId": "cmssh7p1k0001cghxq2m4v8rz",
"provider": "0x2b6ed29a95753c3ad948348e3e7b1a251080ffb9",
"amountDeposited": "250000.0",
"sharesOwned": "250000.0",
"currentValue": "254911.302447",
"active": true,
"depositedAt": "2026-09-08T14:20:00.000Z",
"withdrawnAt": null,
"source": "wallet"
}
]
}
}
{
"success": false,
"error": {
"code": "MARKET_NOT_FOUND",
"message": "Market not found. marketId is the id of a market of this instance as GET /lending-external-securities-v2/api/markets returns it."
}
}
