TypeScript SDK for DobProtocol - tokenized asset management platform. Create and manage distribution pools, marketplace listings, widgets, and projects across Stellar and EVM chains (Ethereum, Base, Arbitrum, Lisk).
Full LLM thinking from the 4-phase benchmark pipeline.
```json
{
"service_type": "defi_protocol",
"base_url": "https://api.dobprotocol.com",
"auth_method": "none",
"auth_config": {
"wallet_auth": true,
"supports_signature_verification": true
},
"endpoints": [
{"path": "/auth/nonce", "method": "GET", "purpose": "get wallet challenge message"},
{"path": "/pools", "method": "GET", "purpose": "list tokenized asset pools"},
{"path": "/pools", "method": "POST", "purpose": "create new pool"},
{"path": "/pools/{id}/actions", "method": "POST", "purpose": "pool interactions"},
{"path": "/projects", "method": "GET", "purpose": "list projects"},
{"path": "/projects", "method": "POST", "purpose": "create project"},
{"path": "/widgets", "method": "GET", "purpose": "widget analytics"},
{"path": "/marketplace", "method": "GET", "purpose": "pool marketplace data"}
],
"pricing_model": {"type": "free", "details": {"sdk_access": "free"}},
"rate_limits": {"rpm": 120},
"capabilities": ["tokenized_rwa", "pool_management", "multi_chain", "widgets", "marketplace"],
"defi_specifics": {
"chains": ["ethereum", "polygon", "arbitrum", "base"],
"protocols": ["dobprotocol"],
"yield_types": ["tokenized_assets", "pool_rewards", "rwa_yield"],
"has_tvl_data": true,
"has_apy_data": true,
"has_price_feeds": false,
"contract_verified": true,
"asset_types": ["real_world_assets", "tokenized_pools"],
"pool_types": ["asset_backed", "investment_pools"],
"widget_integration": true,
"typescript_sdk": true
}
}
```
Looking at this DeFi protocol analysis, I'll design tests for DOB Protocol's tokenized RWA platform:
```json
{
"tests": [
{
"name": "test_pools_listing",
"endpoint": "/pools",
"method": "GET",
"headers": {"X-API-Key": "{api_key}"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of tokenized asset pools with TVL and yield data",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data", "type": "array", "required_fields": ["id", "name", "tvl"]}
},
{
"name": "test_marketplace_data",
"endpoint": "/marketplace",
"method": "GET",
"headers": {"X-API-Key": "{api_key}"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns fresh marketplace data for pools",
"metrics": ["latency", "accuracy", "data_freshness"],
"validation": {"field": "pools", "type": "array", "check_freshness": "updated_at"}
},
{
"name": "test_projects_listing",
"endpoint": "/projects",
"method": "GET",
"headers": {"X-API-Key": "{api_key}"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of RWA projects with metadata",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "projects", "type": "array", "required_fields": ["id", "name", "asset_type"]}
},
{
"name": "test_wallet_nonce",
"endpoint": "/auth/nonce",
"method": "GET",
"headers": {"X-API-Key": "{api_key}"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns unique nonce for wallet authentication",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "nonce", "type": "string", "min_length": 16}
},
{
"name": "test_widgets_analytics",
"endpoint": "/widgets",
"method": "GET",
"headers": {"X-API-Key": "{api_key}"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns widget analytics data",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "widgets", "type": "array"}
},
{
"name": "test_invalid_auth",
"endpoint": "/pools",
"method": "GET",
"headers": {"X-API-Key": "invalid_key_12345"},
"payload": {},
"expected_status": 401,
"expected_behavior": "Returns authentication error for invalid API key",
"metrics": ["error_handling", "status_code"],
"validation": {"field": "error", "type": "string"}
},
{
"name": "test_pool_creation",
"endpoint": "/pools",
"method": "POST",
"headers": {"X-API-Key": "{api_key}", "Content-Type": "application/json"},
"payload": {
"name": "Test RWA Pool",
"asset_type": "real_estate",
"initial_value": 1000000,
"chain": "ethereum"
},
"expected_status": 201,
"expected_behavior": "Creates new tokenized asset pool or returns validation error",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "pool", "type": "object", "required_fields": ["id"]}
}
],
"pricing_probes": [
{
"name": "verify_free_access",
"description": "Confirm API access is free as documented",
"endpoint": "/pools",
"method": "GET",
"payload": {},
"check": "No usage headers or billing information in response"
}
],
"stress_profile": {
"concurrent_requests": 3,
"duration_seconds": 30,
"ramp_up": true,
"respect_rate_limit": {
"rpm": 120,
"strategy": "conservative"
}
},
"defi_validations": {
"tvl_data_quality": {
"endpoint": "/pools",
"checks": ["tvl_is_numeric", "tvl_greater_than_zero", "currency_specified"]
},
"apy_data_quality": {
"endpoint": "/pools",
"checks": ["apy_is_numeric", "apy_reasonable_range", "historical_available"]
},
"data_freshness": {
"endpoint": "/marketplace",
"checks": ["timestamp_within_5_minutes", "price_data_current"]
},
"multi_chain_support": {
"endpoint": "/pools",
"checks": ["ethereum_pools_present", "polygon_pools_present", "arbitrum_pools_present", "base_pools_present"]
},
"rwa_specifics": {
"endpoint": "/projects",
"checks": ["real_world_assets_present", "asset_verification_status", "tokenization_status"]
}
}
}
```
1/8 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| test_pools_listing | GET /pools | None | 10ms |
| test_marketplace_data | GET /marketplace | None | 9ms |
| test_projects_listing | GET /projects | None | 8ms |
| test_wallet_nonce | GET /auth/nonce | None | 8ms |
| test_widgets_analytics | GET /widgets | None | 14ms |
| test_invalid_auth | GET /pools | None | 9ms |
| test_pool_creation | POST /pools | None | 9ms |
| defillama_tvl_crossref | GET https://api.llama.fi/protocols | 200 | 0ms |
```json
{
"overall": 5,
"dimensions": {
"token_efficiency": 0.0,
"first_try_success": 0.0,
"response_parseability": 0.0,
"error_clarity": 2.0,
"doc_quality": 0.0,
"auth_simplicity": 0.0,
"latency": 0.0,
"consistency": 2.0
},
"pricing_normalized": {
"cost_per_1k_requests": null,
"free_tier_requests": null
},
"issues": [
"Complete service unavailability - all endpoints return DNS resolution errors",
"Cannot access any API functionality - service appears to be down or misconfigured",
"DNS records not properly configured for the domain",
"Critical infrastructure failure for a DeFi protocol handling tokenized assets"
],
"recommendations": [
"Fix DNS configuration and ensure domain resolves correctly",
"Verify service is running and accessible on configured ports",
"Test basic connectivity before deploying to production",
"Implement health checks and monitoring for service availability",
"For a DeFi protocol, uptime is critical - consider redundant infrastructure",
"Add proper error handling and status pages for service outages"
]
}
```
TypeScript SDK for tokenized real-world asset pools on DobProtocol.
Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/dobprotocolsdk">
<img src="https://prowl.world/badge/dobprotocolsdk.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard