PollarPollar
SDK Reference

Pollar Server API

REST API for backend operations. All endpoints require your secret key — never call these from client-side code.

Base URL: https://api.pollar.xyz

Authentication:

Authorization: Bearer sec_testnet_xxxxxxxxxxxxxxxxxxxx

Wallets

POST /wallets/activate

Activates a wallet by funding its XLM reserve on-chain. Used in Deferred mode when a business event occurs (KYC approved, first deposit, etc.).

This endpoint behaves like a webhook receiver — Pollar retries until it receives a 200 response.

POST https://api.pollar.xyz/wallets/activate
Authorization: Bearer sec_testnet_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "walletId": "wal_abc123"
}

Response codes:

CodeMeaning
200 OKWallet activated. XLM reserve funded on-chain.
400 Bad RequestMissing or malformed walletId.
402 Payment RequiredFunding wallet has insufficient XLM.
404 Not FoundwalletId does not exist in your app.
409 ConflictWallet is already active. Safe to ignore.
503 Service UnavailableStellar network issue. Pollar retries automatically.

Response body (200):

{
  "walletId": "wal_abc123",
  "address": "GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "active",
  "activatedAt": "2026-03-15T10:30:00Z"
}

GET /wallets/:walletId

Returns wallet details and current balances.

GET https://api.pollar.xyz/wallets/wal_abc123
Authorization: Bearer sec_testnet_xxxxxxxxxxxxxxxxxxxx

Response (200):

{
  "id": "wal_abc123",
  "address": "GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "active",
  "balances": [
    { "asset": "XLM", "amount": "2.50" },
    { "asset": "USDC", "amount": "100.00" }
  ],
  "createdAt": "2026-03-15T10:00:00Z",
  "activatedAt": "2026-03-15T10:30:00Z"
}

GET /wallets/:walletId/transactions

Returns paginated transaction history for a wallet.

GET https://api.pollar.xyz/wallets/wal_abc123/transactions?limit=20&type=payment
Authorization: Bearer sec_testnet_xxxxxxxxxxxxxxxxxxxx

Query parameters:

ParameterTypeDefaultDescription
limitnumber20Transactions per page. Max 100.
cursorstringPagination cursor from previous response.
typestringFilter: payment, activation, trustline, receive
assetstringFilter by asset code, e.g. USDC
fromISO 8601Start date filter
toISO 8601End date filter

Response (200):

{
  "transactions": [
    {
      "hash": "a1b2c3d4...",
      "type": "payment",
      "asset": "USDC",
      "amount": "10.00",
      "from": "GABC...",
      "to": "GXYZ...",
      "feeSponsored": true,
      "ledger": 1234567,
      "timestamp": "2026-03-15T10:30:00Z"
    }
  ],
  "cursor": "eyJsZWRnZXIiOjEyMzQ1NjZ9",
  "hasMore": true
}

Apps

GET /app

Returns the current app configuration.

GET https://api.pollar.xyz/app
Authorization: Bearer sec_testnet_xxxxxxxxxxxxxxxxxxxx

Response (200):

{
  "id": "app_xyz789",
  "name": "My App",
  "network": "testnet",
  "fundingMode": "deferred",
  "assets": ["USDC", "EURC"],
  "createdAt": "2026-01-01T00:00:00Z"
}

Error format

All errors follow a consistent format:

{
  "error": {
    "code": "INSUFFICIENT_SPONSOR_BALANCE",
    "message": "The funding wallet does not have enough XLM to activate this wallet.",
    "status": 402
  }
}

For a full list of error codes see Error Codes.

On this page

Was this helpful?