Skip to main content

Pools

Pool discovery endpoints allow you to search, filter, and retrieve detailed information about distribution pools on DobProtocol. All pool endpoints require an API key with the read scope.

Authentication: X-API-Key header (read scope)

List Pools

Retrieve a paginated list of active pools with optional filtering and sorting.

GET /api/agent/pools

Query Parameters:

ParameterTypeDefaultDescription
searchstring--Search by pool name or ticker
network_idinteger--Filter by network (e.g., 10 for Stellar Mainnet)
access_typestring--Filter by access type: rtj, p, qr, stk
sortstringcreated_descSort order (see below)
pageinteger1Page number
limitinteger20Results per page (max 100)

Sort options:

ValueDescription
created_descNewest first (default)
created_ascOldest first
apr_descHighest estimated APR first
apr_ascLowest estimated APR first
members_descMost members first
members_ascFewest members first

curl:

curl "https://home.dobprotocol.com/api/agent/pools?network_id=10&access_type=p&sort=apr_desc&limit=5" \
-H "X-API-Key: dob_ak_your_key_here"

Python:

import requests

resp = requests.get(
"https://home.dobprotocol.com/api/agent/pools",
headers={"X-API-Key": API_KEY},
params={
"network_id": 10,
"access_type": "p",
"sort": "apr_desc",
"limit": 5
}
)
pools = resp.json()
for pool in pools["data"]:
print(f"{pool['name']} ({pool['ticker']}) - APR: {pool['estimated_apr']}%")

Response (200 OK):

{
"success": true,
"data": [
{
"address": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
"name": "Solar Farm Alpha",
"ticker": "SFA",
"network_id": 10,
"chain_name": "Stellar Mainnet",
"access_type": "p",
"distribution_type": "tr",
"estimated_apr": 12.5,
"member_count": 47,
"max_participants": 100,
"token_to_distribute": "USDC",
"pool_data": {
"name": "Solar Farm Alpha",
"ticker": "SFA",
"max_participants": 100,
"access": "pb",
"distribution_type": "tr",
"estimated_apr": "12.5"
},
"created_at": "2026-02-15T10:00:00Z"
}
],
"meta": {
"page": 1,
"limit": 5,
"total": 23
}
}

Retrieve pools that are currently featured or promoted on DobProtocol.

GET /api/agent/pools/featured

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Filter by network

curl:

curl "https://home.dobprotocol.com/api/agent/pools/featured?network_id=10" \
-H "X-API-Key: dob_ak_your_key_here"

Response (200 OK):

{
"success": true,
"data": [
{
"address": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
"name": "Solar Farm Alpha",
"ticker": "SFA",
"network_id": 10,
"estimated_apr": 12.5,
"member_count": 47,
"featured_reason": "Top performer this month"
}
]
}

Active Crowdfunding Pools

Retrieve pools that are currently running crowdfunding campaigns.

GET /api/agent/pools/crowdfunding

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Filter by network
sortstringdeadline_ascSort order: deadline_asc, deadline_desc, progress_desc

curl:

curl "https://home.dobprotocol.com/api/agent/pools/crowdfunding?network_id=10" \
-H "X-API-Key: dob_ak_your_key_here"

Response (200 OK):

{
"success": true,
"data": [
{
"address": "CA7QYNF7SOVZ4V4LXQHXWJQVGU3ZGR4A5OHCOQZSC7M2XZFKK67TYXZ",
"name": "Wind Turbine Collective",
"ticker": "WTC",
"network_id": 10,
"target_amount": "50000.00",
"raised_amount": "32500.00",
"progress_percent": 65.0,
"contributor_count": 18,
"deadline": "2026-04-15T00:00:00Z",
"payment_token": "USDC",
"is_active": true
}
]
}

Pool Details

Retrieve full details for a specific pool by its contract address.

GET /api/agent/pools/:address

Path Parameters:

ParameterTypeDescription
addressstringPool contract address

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Network ID (required if address exists on multiple networks)

curl:

curl "https://home.dobprotocol.com/api/agent/pools/CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC?network_id=10" \
-H "X-API-Key: dob_ak_your_key_here"

Python:

pool_address = "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC"
resp = requests.get(
f"https://home.dobprotocol.com/api/agent/pools/{pool_address}",
headers={"X-API-Key": API_KEY},
params={"network_id": 10}
)
pool = resp.json()["data"]
print(f"Pool: {pool['name']}")
print(f"Members: {pool['member_count']}/{pool['max_participants']}")
print(f"APR: {pool['estimated_apr']}%")

Response (200 OK):

{
"success": true,
"data": {
"address": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
"name": "Solar Farm Alpha",
"ticker": "SFA",
"network_id": 10,
"chain_name": "Stellar Mainnet",
"creator_address": "GBDM6KRXXJHKVYFJPTPW3WBDKUYVCH7NNEI67DDCP7YX4UHX2GODPHGI",
"access_type": "p",
"distribution_type": "tr",
"estimated_apr": 12.5,
"member_count": 47,
"max_participants": 100,
"token_to_distribute": "USDC",
"total_distributed": "15230.50",
"total_shares": 10000,
"allow_entry": true,
"pool_data": {
"name": "Solar Farm Alpha",
"ticker": "SFA",
"max_participants": 100,
"access": "pb",
"way_to_access": "p",
"distribution_type": "tr",
"estimated_apr": "12.5",
"token_to_distribute": "USDC"
},
"distribution_config": {
"min_interval_seconds": 43200,
"claim_delay_seconds": 3600,
"round_expiry_seconds": 31536000
},
"next_distribution": "2026-03-15T00:00:00Z",
"created_at": "2026-02-15T10:00:00Z"
}
}

Pool Members

Retrieve the list of members (shareholders) in a pool.

GET /api/agent/pools/:address/members

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Network ID
pageinteger1Page number
limitinteger20Results per page (max 100)

curl:

curl "https://home.dobprotocol.com/api/agent/pools/CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC/members?network_id=10" \
-H "X-API-Key: dob_ak_your_key_here"

Response (200 OK):

{
"success": true,
"data": [
{
"user_address": "GDJTUK3ER3M7LFHHWQMFANJA3SEC7QP3LNU3NKGFBLWF4QMFR5HR7I4T",
"shares": 1500,
"participation_percent": 15.0,
"joined_at": "2026-02-20T14:00:00Z"
},
{
"user_address": "GDU3QXHDURHXNKFI4H5QC7JTQOCGS63C25FVTTBGROQOLKV7Q2BAWGYP",
"shares": 800,
"participation_percent": 8.0,
"joined_at": "2026-02-22T09:30:00Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 47
}
}

Distribution History

Retrieve the distribution history for a pool, including completed and upcoming rounds.

GET /api/agent/pools/:address/distributions

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Network ID
statusstring--Filter: completed, pending, expired
pageinteger1Page number
limitinteger20Results per page (max 100)

curl:

curl "https://home.dobprotocol.com/api/agent/pools/CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC/distributions?network_id=10&status=completed" \
-H "X-API-Key: dob_ak_your_key_here"

Response (200 OK):

{
"success": true,
"data": [
{
"round_id": 5,
"token": "USDC",
"total_amount": "2500.00",
"total_shares": 10000,
"amount_per_share": "0.25",
"total_claimed": "2125.00",
"claim_count": 38,
"status": "completed",
"created_at": "2026-03-01T00:00:00Z",
"claimable_from": "2026-03-01T01:00:00Z",
"expires_at": "2027-03-01T00:00:00Z"
},
{
"round_id": 4,
"token": "USDC",
"total_amount": "2200.00",
"total_shares": 10000,
"amount_per_share": "0.22",
"total_claimed": "2200.00",
"claim_count": 47,
"status": "completed",
"created_at": "2026-02-15T00:00:00Z",
"claimable_from": "2026-02-15T01:00:00Z",
"expires_at": "2027-02-15T00:00:00Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 5
}
}

Pool Events

Retrieve the event log for a pool. Events include share transfers, distributions, claims, admin changes, and more.

GET /api/agent/pools/:address/events

Query Parameters:

ParameterTypeDefaultDescription
network_idinteger--Network ID
event_typestring--Filter by type: init, distribute, claim, transfer_shares, withdraw, lock, set_admin
pageinteger1Page number
limitinteger20Results per page (max 100)

curl:

curl "https://home.dobprotocol.com/api/agent/pools/CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC/events?network_id=10&event_type=distribute&limit=10" \
-H "X-API-Key: dob_ak_your_key_here"

Python:

pool_address = "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC"
resp = requests.get(
f"https://home.dobprotocol.com/api/agent/pools/{pool_address}/events",
headers={"X-API-Key": API_KEY},
params={"network_id": 10, "limit": 10}
)
events = resp.json()["data"]
for event in events:
print(f"[{event['event_type']}] {event['date']} - {event.get('description', '')}")

Response (200 OK):

{
"success": true,
"data": [
{
"event_type": "distribute",
"pool_id": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
"transaction_hash": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2",
"from_address": "GBDM6KRXXJHKVYFJPTPW3WBDKUYVCH7NNEI67DDCP7YX4UHX2GODPHGI",
"amount": "2500.00",
"token": "USDC",
"date": "2026-03-01T00:00:00Z",
"description": "Distribution round 5 created: 2500.00 USDC"
},
{
"event_type": "transfer_shares",
"pool_id": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
"transaction_hash": "b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3",
"from_address": "GBDM6KRXXJHKVYFJPTPW3WBDKUYVCH7NNEI67DDCP7YX4UHX2GODPHGI",
"to_address": "GDJTUK3ER3M7LFHHWQMFANJA3SEC7QP3LNU3NKGFBLWF4QMFR5HR7I4T",
"amount": "1500",
"date": "2026-02-20T14:00:00Z",
"description": "1500 shares transferred"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 28
}
}

Access Types Reference

CodeNameDescription
rtjRequest / AirdropUsers request to join; admin approves and airdrops shares
pBuyUsers purchase shares directly (marketplace or crowdfunding)
qrQR CodeUsers join by scanning a QR code
stkStakingUsers stake tokens to receive shares

Distribution Types Reference

CodeNameDescription
trTrustedPool creator manages distributions manually
btBusinessAutomated distributions on a schedule
damDAMDecentralized Asset Management