> For the complete documentation index, see [llms.txt](https://docs.aboutcircles.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aboutcircles.com/api-reference/circles-api.md).

# Circles API

## Get all token balances with metadata

> Returns all token balances of an address with full metadata. Each row includes flags\
> (\`isWrapped\`, \`isGroup\`, \`isInflationary\`, \`isErc20\`, \`isErc1155\`, \`tokenType\`) for\
> client-side filtering, plus balances in several denominations\
> (\`attoCircles\`/\`circles\`, \`staticAttoCircles\`/\`staticCircles\`, \`attoCrc\`/\`crc\`).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Address to get balances for.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Balance & Tokens","description":"Total balances and per-token holdings & metadata."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTokenBalances":{"post":{"tags":["Balance & Tokens"],"operationId":"circles_getTokenBalances","summary":"Get all token balances with metadata","description":"Returns all token balances of an address with full metadata. Each row includes flags\n(`isWrapped`, `isGroup`, `isInflationary`, `isErc20`, `isErc1155`, `tokenType`) for\nclient-side filtering, plus balances in several denominations\n(`attoCircles`/`circles`, `staticAttoCircles`/`staticCircles`, `attoCrc`/`crc`).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Address to get balances for.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of token balance rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get metadata for a token

> Returns metadata for a single Circles token.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`tokenAddress\` (string, \*\*required\*\*) — Token contract address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Balance & Tokens","description":"Total balances and per-token holdings & metadata."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTokenInfo":{"post":{"tags":["Balance & Tokens"],"operationId":"circles_getTokenInfo","summary":"Get metadata for a token","description":"Returns metadata for a single Circles token.\n\n**Positional `params`:**\n1. `tokenAddress` (string, **required**) — Token contract address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Token metadata object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get metadata for multiple tokens

> Batch variant of \[\`circles\_getTokenInfo\`]\(#operation/circles\_getTokenInfo).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`tokenAddresses\` (string\[], \*\*required\*\*) — Array of token contract addresses.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Balance & Tokens","description":"Total balances and per-token holdings & metadata."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTokenInfoBatch":{"post":{"tags":["Balance & Tokens"],"operationId":"circles_getTokenInfoBatch","summary":"Get metadata for multiple tokens","description":"Batch variant of [`circles_getTokenInfo`](#operation/circles_getTokenInfo).\n\n**Positional `params`:**\n1. `tokenAddresses` (string[], **required**) — Array of token contract addresses.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of token metadata objects (one per input address).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get avatar info

> Returns avatar information for an address (V1 and V2 merged): version, type, token id,\
> whether it has a V1 token, and its profile CID (if any).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAvatarInfo":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getAvatarInfo","summary":"Get avatar info","description":"Returns avatar information for an address (V1 and V2 merged): version, type, token id,\nwhether it has a V1 token, and its profile CID (if any).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Avatar info object (or `null` if not signed up).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get avatar info for multiple addresses

> Batch variant of \[\`circles\_getAvatarInfo\`]\(#operation/circles\_getAvatarInfo).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`addresses\` (string\[], \*\*required\*\*) — Array of avatar addresses.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAvatarInfoBatch":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getAvatarInfoBatch","summary":"Get avatar info for multiple addresses","description":"Batch variant of [`circles_getAvatarInfo`](#operation/circles_getAvatarInfo).\n\n**Positional `params`:**\n1. `addresses` (string[], **required**) — Array of avatar addresses.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of avatar info objects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profile by address

> Returns the profile for an avatar address. May also include extended group-profile\
> fields when set: \`externalLinks.website\`,\
> \`membershipCriteria.{minRepScore, membershipFee, additionalCriteria}\`, \`groupType\`,\
> \`contactInfo.{email, website}\`.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileByAddress":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileByAddress","summary":"Get profile by address","description":"Returns the profile for an avatar address. May also include extended group-profile\nfields when set: `externalLinks.website`,\n`membershipCriteria.{minRepScore, membershipFee, additionalCriteria}`, `groupType`,\n`contactInfo.{email, website}`.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Profile object (or `null` if none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profiles for multiple addresses

> Batch variant of \[\`circles\_getProfileByAddress\`]\(#operation/circles\_getProfileByAddress).\
> Extended group-profile fields may be present per item.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`addresses\` (string\[], \*\*required\*\*) — Array of avatar addresses.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileByAddressBatch":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileByAddressBatch","summary":"Get profiles for multiple addresses","description":"Batch variant of [`circles_getProfileByAddress`](#operation/circles_getProfileByAddress).\nExtended group-profile fields may be present per item.\n\n**Positional `params`:**\n1. `addresses` (string[], **required**) — Array of avatar addresses.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of profile objects (one per input address; `null` when none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profile IPFS CID

> Returns the IPFS CIDv0 of an avatar's profile.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileCid":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileCid","summary":"Get profile IPFS CID","description":"Returns the IPFS CIDv0 of an avatar's profile.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"CIDv0 string (or `null`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profile IPFS CIDs (batch)

> Batch variant of \[\`circles\_getProfileCid\`]\(#operation/circles\_getProfileCid).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`addresses\` (string\[], \*\*required\*\*) — Array of avatar addresses.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileCidBatch":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileCidBatch","summary":"Get profile IPFS CIDs (batch)","description":"Batch variant of [`circles_getProfileCid`](#operation/circles_getProfileCid).\n\n**Positional `params`:**\n1. `addresses` (string[], **required**) — Array of avatar addresses.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of CIDv0 strings (one per input address; `null` when none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profile by IPFS CID

> Retrieves a profile from IPFS by its CID.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`cid\` (string, \*\*required\*\*) — CIDv0 string.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileByCid":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileByCid","summary":"Get profile by IPFS CID","description":"Retrieves a profile from IPFS by its CID.\n\n**Positional `params`:**\n1. `cid` (string, **required**) — CIDv0 string.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Profile object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get profiles by IPFS CIDs (batch)

> Batch variant of \[\`circles\_getProfileByCid\`]\(#operation/circles\_getProfileByCid).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`cids\` (string\[], \*\*required\*\*) — Array of IPFS CIDs.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileByCidBatch":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_getProfileByCidBatch","summary":"Get profiles by IPFS CIDs (batch)","description":"Batch variant of [`circles_getProfileByCid`](#operation/circles_getProfileByCid).\n\n**Positional `params`:**\n1. `cids` (string[], **required**) — Array of IPFS CIDs.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of profile objects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Full-text profile search

> Full-text search for profiles. Each result's \`Profile\` sub-object may include extended\
> group fields (flat shape): \`externalWebsite\`, \`minRepScore\`, \`membershipFee\`,\
> \`additionalCriteria\`, \`groupType\`, \`contactEmail\`, \`contactWebsite\`.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`text\` (string, \*\*required\*\*) — Search query (max 3 tokens).\
> 2\. \`limit\` (integer, optional, default \`20\`) — Max results (max 100).\
> 3\. \`offset\` (integer, optional, default \`0\`) — Pagination offset.\
> 4\. \`types\` (string\[], optional) — Filter by avatar types.\
> 5\. \`groupType\` (string, optional) — Filter by group type: \`open\` or \`closed\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_searchProfiles":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_searchProfiles","summary":"Full-text profile search","description":"Full-text search for profiles. Each result's `Profile` sub-object may include extended\ngroup fields (flat shape): `externalWebsite`, `minRepScore`, `membershipFee`,\n`additionalCriteria`, `groupType`, `contactEmail`, `contactWebsite`.\n\n**Positional `params`:**\n1. `text` (string, **required**) — Search query (max 3 tokens).\n2. `limit` (integer, optional, default `20`) — Max results (max 100).\n3. `offset` (integer, optional, default `0`) — Pagination offset.\n4. `types` (string[], optional) — Filter by avatar types.\n5. `groupType` (string, optional) — Filter by group type: `open` or `closed`.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of matching profiles.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Unified search by address or name

> Unified search by address prefix \*\*or\*\* name/text. A \`0x\` prefix triggers address search.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`query\` (string, \*\*required\*\*) — Search query (\`0x…\` ⇒ address search).\
> 2\. \`limit\` (integer, optional, default \`20\`) — Max results.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.\
> 4\. \`types\` (string\[], optional) — Filter by avatar types.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Avatars & Profiles","description":"Avatar registration info and IPFS-backed profiles."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_searchProfileByAddressOrName":{"post":{"tags":["Avatars & Profiles"],"operationId":"circles_searchProfileByAddressOrName","summary":"Unified search by address or name","description":"Unified search by address prefix **or** name/text. A `0x` prefix triggers address search.\n\n**Positional `params`:**\n1. `query` (string, **required**) — Search query (`0x…` ⇒ address search).\n2. `limit` (integer, optional, default `20`) — Max results.\n3. `cursor` (string, optional) — Pagination cursor.\n4. `types` (string[], optional) — Filter by avatar types.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Search result with detected `searchType` and matched profiles.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get trust relations

> Returns the trust relationships for an address as a list of outgoing trusts with limits.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTrustRelations":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getTrustRelations","summary":"Get trust relations","description":"Returns the trust relationships for an address as a list of outgoing trusts with limits.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Trust relations for the user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get aggregated trust relations

> Returns aggregated trust relations in SDK-compatible format. \`relation\` is one of\
> \`trusts\`, \`trustedBy\`, \`mutuallyTrusts\`, \`selfTrusts\`.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`avatar\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAggregatedTrustRelations":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getAggregatedTrustRelations","summary":"Get aggregated trust relations","description":"Returns aggregated trust relations in SDK-compatible format. `relation` is one of\n`trusts`, `trustedBy`, `mutuallyTrusts`, `selfTrusts`.\n\n**Positional `params`:**\n1. `avatar` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of aggregated trust relation rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get common trust between two addresses

> Finds addresses that two users both trust.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address1\` (string, \*\*required\*\*) — First address.\
> 2\. \`address2\` (string, \*\*required\*\*) — Second address.\
> 3\. \`version\` (integer, optional) — Filter by version (\`1\`, \`2\`, or \`null\` for both).<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getCommonTrust":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getCommonTrust","summary":"Get common trust between two addresses","description":"Finds addresses that two users both trust.\n\n**Positional `params`:**\n1. `address1` (string, **required**) — First address.\n2. `address2` (string, **required**) — Second address.\n3. `version` (integer, optional) — Filter by version (`1`, `2`, or `null` for both).\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of commonly-trusted addresses (empty if none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get group members

> Returns members of a specific group, paginated.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`groupAddress\` (string, \*\*required\*\*) — Group address.\
> 2\. \`limit\` (integer, optional, default \`100\`) — Max results.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getGroupMembers":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getGroupMembers","summary":"Get group members","description":"Returns members of a specific group, paginated.\n\n**Positional `params`:**\n1. `groupAddress` (string, **required**) — Group address.\n2. `limit` (integer, optional, default `100`) — Max results.\n3. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Paginated list of group memberships.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get group memberships of an avatar

> Returns the groups that an avatar is a member of.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`memberAddress\` (string, \*\*required\*\*) — Member address.\
> 2\. \`limit\` (integer, optional, default \`50\`) — Max results.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getGroupMemberships":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getGroupMemberships","summary":"Get group memberships of an avatar","description":"Returns the groups that an avatar is a member of.\n\n**Positional `params`:**\n1. `memberAddress` (string, **required**) — Member address.\n2. `limit` (integer, optional, default `50`) — Max results.\n3. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Paginated list of group memberships.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get score-group mint limits

> Returns per-(group, collateral) headroom for score-group mints. Passing a\
> \`collateralToken\` returns a single row.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`group\` (string, \*\*required\*\*) — Score-group address.\
> 2\. \`collateralToken\` (string, optional) — Collateral token filter.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getScoreGroupMintLimits":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getScoreGroupMintLimits","summary":"Get score-group mint limits","description":"Returns per-(group, collateral) headroom for score-group mints. Passing a\n`collateralToken` returns a single row.\n\n**Positional `params`:**\n1. `group` (string, **required**) — Score-group address.\n2. `collateralToken` (string, optional) — Collateral token filter.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Mint-limit rows for the group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get a full trust-network snapshot

> Returns a complete snapshot of the Circles trust network. \*\*This response is large.\*\*\
> \
> \*\*Positional \`params\`:\*\* \_none.\_<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Trust & Groups","description":"Trust relationships, groups and group membership."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getNetworkSnapshot":{"post":{"tags":["Trust & Groups"],"operationId":"circles_getNetworkSnapshot","summary":"Get a full trust-network snapshot","description":"Returns a complete snapshot of the Circles trust network. **This response is large.**\n\n**Positional `params`:** _none._\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Full network snapshot (shape illustrative — fields may vary).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get transaction history

> Returns incoming and outgoing Circles transfers for an avatar (mints and transfers,\
> V1 and V2). Results are ordered descending.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`avatarAddress\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`limit\` (integer, optional, default \`50\`) — Max transactions.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.\
> 4\. \`version\` (integer, optional) — Filter by version (\`null\` = both).\
> 5\. \`excludeIntermediary\` (boolean, optional, default \`true\`) — Exclude intermediary hops.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Transactions","description":"Transfer history, token holders and ERC-1155 transfer data."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTransactionHistory":{"post":{"tags":["Transactions"],"operationId":"circles_getTransactionHistory","summary":"Get transaction history","description":"Returns incoming and outgoing Circles transfers for an avatar (mints and transfers,\nV1 and V2). Results are ordered descending.\n\n**Positional `params`:**\n1. `avatarAddress` (string, **required**) — Avatar address.\n2. `limit` (integer, optional, default `50`) — Max transactions.\n3. `cursor` (string, optional) — Pagination cursor.\n4. `version` (integer, optional) — Filter by version (`null` = both).\n5. `excludeIntermediary` (boolean, optional, default `true`) — Exclude intermediary hops.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Transaction rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get enriched transaction history

> Transaction history enriched with participant profiles, over a block range.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`fromBlock\` (integer, \*\*required\*\*) — Starting block number.\
> 3\. \`toBlock\` (integer, optional) — Ending block number.\
> 4\. \`limit\` (integer, optional, default \`20\`) — Max transactions.\
> 5\. \`cursor\` (string, optional) — Pagination cursor.\
> 6\. \`version\` (integer, optional) — Filter by version.\
> 7\. \`excludeIntermediary\` (boolean, optional, default \`true\`) — Exclude intermediary hops.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Transactions","description":"Transfer history, token holders and ERC-1155 transfer data."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTransactionHistoryEnriched":{"post":{"tags":["Transactions"],"operationId":"circles_getTransactionHistoryEnriched","summary":"Get enriched transaction history","description":"Transaction history enriched with participant profiles, over a block range.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `fromBlock` (integer, **required**) — Starting block number.\n3. `toBlock` (integer, optional) — Ending block number.\n4. `limit` (integer, optional, default `20`) — Max transactions.\n5. `cursor` (string, optional) — Pagination cursor.\n6. `version` (integer, optional) — Filter by version.\n7. `excludeIntermediary` (boolean, optional, default `true`) — Exclude intermediary hops.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Enriched transaction rows (shape illustrative; like `circles_getTransactionHistory` rows plus `fromProfile`/`toProfile`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get token holders

> Returns all holders of a specific token, paginated.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`tokenAddress\` (string, \*\*required\*\*) — Token address.\
> 2\. \`limit\` (integer, optional, default \`100\`) — Max holders.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Transactions","description":"Transfer history, token holders and ERC-1155 transfer data."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTokenHolders":{"post":{"tags":["Transactions"],"operationId":"circles_getTokenHolders","summary":"Get token holders","description":"Returns all holders of a specific token, paginated.\n\n**Positional `params`:**\n1. `tokenAddress` (string, **required**) — Token address.\n2. `limit` (integer, optional, default `100`) — Max holders.\n3. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Paginated list of token holders.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get ERC-1155 transfer data bytes

> Returns the \`data\` bytes parameter from ERC-1155 transfer calls. See the\
> \`CrcV2\_TransferData\` tutorial for decoding annotated payloads.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Primary address to filter.\
> 2\. \`direction\` (string, optional) — \`"sent"\`, \`"received"\`, or \`null\` (both).\
> 3\. \`counterparty\` (string, optional) — Counterparty address filter.\
> 4\. \`fromBlock\` (integer, optional) — Start block (inclusive).\
> 5\. \`toBlock\` (integer, optional) — End block (inclusive).\
> 6\. \`limit\` (integer, optional, default \`50\`) — Max results (max 1000).\
> 7\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Transactions","description":"Transfer history, token holders and ERC-1155 transfer data."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTransferData":{"post":{"tags":["Transactions"],"operationId":"circles_getTransferData","summary":"Get ERC-1155 transfer data bytes","description":"Returns the `data` bytes parameter from ERC-1155 transfer calls. See the\n`CrcV2_TransferData` tutorial for decoding annotated payloads.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Primary address to filter.\n2. `direction` (string, optional) — `\"sent\"`, `\"received\"`, or `null` (both).\n3. `counterparty` (string, optional) — Counterparty address filter.\n4. `fromBlock` (integer, optional) — Start block (inclusive).\n5. `toBlock` (integer, optional) — End block (inclusive).\n6. `limit` (integer, optional, default `50`) — Max results (max 1000).\n7. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Transfers carrying a non-empty `data` field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Query indexed blockchain events

> Queries indexed blockchain events with advanced filtering.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, optional) — Filter by address.\
> 2\. \`fromBlock\` (integer, optional) — Starting block (inclusive).\
> 3\. \`toBlock\` (integer, optional) — Ending block (inclusive).\
> 4\. \`eventTypes\` (string\[], optional) — Filter by event types (e.g. \`CrcV2\_TransferSingle\`).\
> 5\. \`filterPredicates\` (object\[], optional) — Advanced filter predicates.\
> 6\. \`sortAscending\` (boolean, optional, default \`false\`) — Sort order.\
> 7\. \`limit\` (integer, optional, default \`100\`) — Max events (max 1000).\
> 8\. \`cursor\` (string, optional) — Pagination cursor.\
> \
> Event types include the \`CrcV1\_\*\`, \`CrcV2\_\*\` and \`CrcV2\_ScoreGroup\_\*\` families — see\
> \`circles\_tables\` for the full catalog.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Events & Query","description":"Indexed blockchain events and generic table queries."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_events":{"post":{"tags":["Events & Query"],"operationId":"circles_events","summary":"Query indexed blockchain events","description":"Queries indexed blockchain events with advanced filtering.\n\n**Positional `params`:**\n1. `address` (string, optional) — Filter by address.\n2. `fromBlock` (integer, optional) — Starting block (inclusive).\n3. `toBlock` (integer, optional) — Ending block (inclusive).\n4. `eventTypes` (string[], optional) — Filter by event types (e.g. `CrcV2_TransferSingle`).\n5. `filterPredicates` (object[], optional) — Advanced filter predicates.\n6. `sortAscending` (boolean, optional, default `false`) — Sort order.\n7. `limit` (integer, optional, default `100`) — Max events (max 1000).\n8. `cursor` (string, optional) — Pagination cursor.\n\nEvent types include the `CrcV1_*`, `CrcV2_*` and `CrcV2_ScoreGroup_*` families — see\n`circles_tables` for the full catalog.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of events with `event` name and `values` payload (hex-encoded numerics).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Generic table query

> Runs a generic database query against an indexed namespace/table. Use \`circles\_tables\`\
> to discover available namespaces, tables and columns.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`query\` (object, \*\*required\*\*) — A \`SelectDto\`:\
> &#x20;  \- \`Namespace\` (string) — e.g. \`V\_Crc\`, \`CrcV2\`, \`CrcV2\_ScoreGroup\`.\
> &#x20;  \- \`Table\` (string) — e.g. \`Avatars\`.\
> &#x20;  \- \`Columns\` (string\[], optional) — Columns to return (empty = all).\
> &#x20;  \- \`Filter\` (object\[], optional) — \`FilterPredicate\` objects\
> &#x20;    (\`{ type, column, filterType, value }\`; \`filterType\` ∈ \`Equals\`, \`NotEquals\`,\
> &#x20;    \`GreaterThan\`, \`LessThan\`, \`Like\`, \`In\`, \`IsNull\`, …).\
> &#x20;  \- \`Order\` (object\[], optional) — \`\[{ Column, SortOrder }]\`, \`SortOrder\` ∈ \`ASC\`/\`DESC\`.\
> &#x20;  \- \`Limit\` (integer, optional), \`Distinct\` (boolean, optional).\
> 2\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Events & Query","description":"Indexed blockchain events and generic table queries."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_query":{"post":{"tags":["Events & Query"],"operationId":"circles_query","summary":"Generic table query","description":"Runs a generic database query against an indexed namespace/table. Use `circles_tables`\nto discover available namespaces, tables and columns.\n\n**Positional `params`:**\n1. `query` (object, **required**) — A `SelectDto`:\n   - `Namespace` (string) — e.g. `V_Crc`, `CrcV2`, `CrcV2_ScoreGroup`.\n   - `Table` (string) — e.g. `Avatars`.\n   - `Columns` (string[], optional) — Columns to return (empty = all).\n   - `Filter` (object[], optional) — `FilterPredicate` objects\n     (`{ type, column, filterType, value }`; `filterType` ∈ `Equals`, `NotEquals`,\n     `GreaterThan`, `LessThan`, `Like`, `In`, `IsNull`, …).\n   - `Order` (object[], optional) — `[{ Column, SortOrder }]`, `SortOrder` ∈ `ASC`/`DESC`.\n   - `Limit` (integer, optional), `Distinct` (boolean, optional).\n2. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Result with `columns` and `rows` (rows are positional arrays aligned to `columns`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Paginated table query

> Like \[\`circles\_query\`]\(#operation/circles\_query) but returns a\
> \`{ columns, rows, hasMore, nextCursor }\` wrapper for pagination.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`query\` (object, \*\*required\*\*) — \`SelectDto\` (see \`circles\_query\`).\
> 2\. \`cursor\` (string, optional) — Cursor from a previous response.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Events & Query","description":"Indexed blockchain events and generic table queries."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_paginated_query":{"post":{"tags":["Events & Query"],"operationId":"circles_paginated_query","summary":"Paginated table query","description":"Like [`circles_query`](#operation/circles_query) but returns a\n`{ columns, rows, hasMore, nextCursor }` wrapper for pagination.\n\n**Positional `params`:**\n1. `query` (object, **required**) — `SelectDto` (see `circles_query`).\n2. `cursor` (string, optional) — Cursor from a previous response.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Paginated query result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## List available tables and schemas

> Returns the catalog of available namespaces, tables, their event topics and column schemas.\
> \
> \*\*Positional \`params\`:\*\* \_none.\_<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Events & Query","description":"Indexed blockchain events and generic table queries."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_tables":{"post":{"tags":["Events & Query"],"operationId":"circles_tables","summary":"List available tables and schemas","description":"Returns the catalog of available namespaces, tables, their event topics and column schemas.\n\n**Positional `params`:** _none._\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of namespaces with their tables and column definitions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get complete profile view

> Returns a complete profile view combining avatar info, profile, trust stats and balances.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getProfileView":{"post":{"tags":["SDK Methods"],"operationId":"circles_getProfileView","summary":"Get complete profile view","description":"Returns a complete profile view combining avatar info, profile, trust stats and balances.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Combined profile view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get trust network summary

> Returns aggregated trust-network statistics for an address.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`maxDepth\` (integer, optional) — Max depth for network traversal.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTrustNetworkSummary":{"post":{"tags":["SDK Methods"],"operationId":"circles_getTrustNetworkSummary","summary":"Get trust network summary","description":"Returns aggregated trust-network statistics for an address.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `maxDepth` (integer, optional) — Max depth for network traversal.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Trust network summary statistics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get enriched aggregated trust relations

> Trust relations categorized by type with enriched avatar info, paginated.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`limit\` (integer, optional, default \`50\`) — Max results per page.\
> 3\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAggregatedTrustRelationsEnriched":{"post":{"tags":["SDK Methods"],"operationId":"circles_getAggregatedTrustRelationsEnriched","summary":"Get enriched aggregated trust relations","description":"Trust relations categorized by type with enriched avatar info, paginated.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `limit` (integer, optional, default `50`) — Max results per page.\n3. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Enriched trust relations grouped under `results`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get valid inviters

> Returns addresses that trust the given address \*\*and\*\* have sufficient balance to invite.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`minimumBalance\` (string, optional) — Minimum balance required (in CRC).\
> 3\. \`limit\` (integer, optional, default \`50\`) — Max results.\
> 4\. \`cursor\` (string, optional) — Pagination cursor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getValidInviters":{"post":{"tags":["SDK Methods"],"operationId":"circles_getValidInviters","summary":"Get valid inviters","description":"Returns addresses that trust the given address **and** have sufficient balance to invite.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `minimumBalance` (string, optional) — Minimum balance required (in CRC).\n3. `limit` (integer, optional, default `50`) — Max results.\n4. `cursor` (string, optional) — Pagination cursor.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Valid inviters with balances and enriched avatar info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get invitation origin

> Returns how a user joined Circles (the origin of their invitation).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getInvitationOrigin":{"post":{"tags":["SDK Methods"],"operationId":"circles_getInvitationOrigin","summary":"Get invitation origin","description":"Returns how a user joined Circles (the origin of their invitation).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Invitation origin record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get all invitations for an address

> Returns all available invitations for an address from all sources (trust, escrow,\
> at-scale).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`minimumBalance\` (string, optional) — Minimum balance required (in CRC).<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAllInvitations":{"post":{"tags":["SDK Methods"],"operationId":"circles_getAllInvitations","summary":"Get all invitations for an address","description":"Returns all available invitations for an address from all sources (trust, escrow,\nat-scale).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `minimumBalance` (string, optional) — Minimum balance required (in CRC).\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Invitations grouped by source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get trust-based invitations

> Returns trust-based invitations (addresses that trust the target with sufficient balance).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.\
> 2\. \`minimumBalance\` (string, optional) — Minimum CRC balance required (in wei).<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getTrustInvitations":{"post":{"tags":["SDK Methods"],"operationId":"circles_getTrustInvitations","summary":"Get trust-based invitations","description":"Returns trust-based invitations (addresses that trust the target with sufficient balance).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n2. `minimumBalance` (string, optional) — Minimum CRC balance required (in wei).\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of trust-based inviters (shape illustrative).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get escrow-based invitations

> Returns escrow-based invitations (CRC escrowed for the target address).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getEscrowInvitations":{"post":{"tags":["SDK Methods"],"operationId":"circles_getEscrowInvitations","summary":"Get escrow-based invitations","description":"Returns escrow-based invitations (CRC escrowed for the target address).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of escrow invitations (shape illustrative).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get at-scale invitations

> Returns at-scale invitations (pre-created unclaimed accounts) for an address.\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Avatar address.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getAtScaleInvitations":{"post":{"tags":["SDK Methods"],"operationId":"circles_getAtScaleInvitations","summary":"Get at-scale invitations","description":"Returns at-scale invitations (pre-created unclaimed accounts) for an address.\n\n**Positional `params`:**\n1. `address` (string, **required**) — Avatar address.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Array of at-scale invitations (shape illustrative).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Get accounts invited by an avatar

> Returns accounts invited by a specific avatar (accepted or pending).\
> \
> \*\*Positional \`params\`:\*\*\
> 1\. \`address\` (string, \*\*required\*\*) — Inviter avatar address.\
> 2\. \`accepted\` (boolean, optional, default \`false\`) — \`true\` = registered accounts,\
> &#x20;  \`false\` = pending invitations.<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"SDK Methods","description":"Higher-level aggregated views used by the Circles SDK."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circles_getInvitationsFrom":{"post":{"tags":["SDK Methods"],"operationId":"circles_getInvitationsFrom","summary":"Get accounts invited by an avatar","description":"Returns accounts invited by a specific avatar (accepted or pending).\n\n**Positional `params`:**\n1. `address` (string, **required**) — Inviter avatar address.\n2. `accepted` (boolean, optional, default `false`) — `true` = registered accounts,\n   `false` = pending invitations.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Invited accounts with status and enriched avatar info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```

## Find a transitive payment path

> Calculates a transitive payment path through the trust network. Unlike most Circles\
> methods, this takes a single \*\*object\*\* as the only \`params\` element.\
> \
> \*\*\`params\[0]\` object fields:\*\*\
> \- \`source\` (string, \*\*required\*\*) — Source address.\
> \- \`sink\` (string, \*\*required\*\*) — Destination address.\
> \- \`targetFlow\` (string, \*\*required\*\*) — Target amount as a \`uint256\` string (in wei).\
> &#x20; Use the max \`uint256\`\
> &#x20; (\`115792089237316195423570985008687907853269984665640564039457584007913129639935\`)\
> &#x20; for a max-flow query.\
> \- \`withWrap\` (boolean, optional) — Enable ERC20 wrapping.\
> \- \`fromTokens\` / \`toTokens\` (string\[], optional) — Whitelist source/destination tokens.\
> \- \`excludedFromTokens\` / \`excludedToTokens\` (string\[], optional) — Blacklist tokens.\
> \- \`simulatedBalances\` (object\[], optional) — Override balances for testing.\
> \- \`simulatedTrusts\` (object\[], optional) — Override trusts for testing.\
> \- \`simulatedConsentedAvatars\` (string\[], optional) — Pre-consented avatars.\
> \- \`maxTransfers\` (integer, optional) — Max transfer hops.\
> \- \`quantizedMode\` (boolean, optional) — 96 CRC quantization for invitations.\
> \
> \> Routed to the Pathfinder, which shares the RPC root URL (\`/\`).<br>

```json
{"openapi":"3.0.3","info":{"title":"Circles RPC API","version":"1.0.0"},"tags":[{"name":"Pathfinder","description":"Transitive payment path finding through the trust graph."}],"servers":[{"url":"https://rpc.aboutcircles.com","description":"Production"}],"paths":{"/#circlesV2_findPath":{"post":{"tags":["Pathfinder"],"operationId":"circlesV2_findPath","summary":"Find a transitive payment path","description":"Calculates a transitive payment path through the trust network. Unlike most Circles\nmethods, this takes a single **object** as the only `params` element.\n\n**`params[0]` object fields:**\n- `source` (string, **required**) — Source address.\n- `sink` (string, **required**) — Destination address.\n- `targetFlow` (string, **required**) — Target amount as a `uint256` string (in wei).\n  Use the max `uint256`\n  (`115792089237316195423570985008687907853269984665640564039457584007913129639935`)\n  for a max-flow query.\n- `withWrap` (boolean, optional) — Enable ERC20 wrapping.\n- `fromTokens` / `toTokens` (string[], optional) — Whitelist source/destination tokens.\n- `excludedFromTokens` / `excludedToTokens` (string[], optional) — Blacklist tokens.\n- `simulatedBalances` (object[], optional) — Override balances for testing.\n- `simulatedTrusts` (object[], optional) — Override trusts for testing.\n- `simulatedConsentedAvatars` (string[], optional) — Pre-consented avatars.\n- `maxTransfers` (integer, optional) — Max transfer hops.\n- `quantizedMode` (boolean, optional) — 96 CRC quantization for invitations.\n\n> Routed to the Pathfinder, which shares the RPC root URL (`/`).\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequestBase"}]}}},"required":true},"responses":{"200":{"description":"Computed flow with the ordered list of transfers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"schemas":{"JsonRpcRequestBase":{"type":"object","required":["jsonrpc","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0","description":"JSON-RPC protocol version. Always `\"2.0\"`."},"id":{"oneOf":[{"type":"integer"},{"type":"string"}],"default":1,"description":"Request identifier echoed back in the response."},"method":{"type":"string","description":"The RPC method name (also selects routing on the single root endpoint)."},"params":{"type":"array","description":"Positional parameters for the method (see each operation for the order and types). Pathfinder and query methods take a single object as the first element.","items":{}}},"description":"JSON-RPC 2.0 request envelope. Sent via `POST` to the server root (`/`)."},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"result":{"description":"Method-specific result. Present on success; see the example for each operation. (Type varies: string, object, array, boolean, …)"},"error":{"$ref":"#/components/schemas/JsonRpcError"}},"description":"JSON-RPC 2.0 response envelope. On success `result` is present; on failure `error` is present instead (still returned with HTTP `200`)."},"JsonRpcError":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"description":"Optional additional error detail."}},"description":"JSON-RPC 2.0 error object."}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aboutcircles.com/api-reference/circles-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
