# CoinOpSelect Contract Permissions Query

> CoinOpSelect Contract Permissions Query is a paid API for AI agents from coinop.publicvm.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-21).

Looks up ERC-20 token allowance and permission data for a given contract, owner, and spender address on Base

## Facts

- Endpoint: GET https://coinop.publicvm.com/api/v1/query/contract-permissions?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/coinopselect-contract-permissions-query-0b171a71
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wrDVUZyjp0IyXJRvvCNnO

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability coinopselect-contract-permissions-query-0b171a71
```

Example prompt: Check the ERC-20 token allowance on Base for owner address 0xAbC...123 and spender 0xDeF...456 for the USDC contract at 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 — I want to know if the spender has any approved amount.

## When to prefer this

Use this endpoint when you need to check ERC-20 token spending permissions or allowances on the Base network without running your own RPC node. It is ideal for AI agents performing pre-flight checks before DeFi transactions, auditing wallet approvals, or verifying that a spender contract is authorized. Prefer this over generic blockchain RPCs when you want a structured, parsed response rather than raw contract call output, and when operating on Base mainnet specifically.

## Known failure modes

- Invalid or malformed contract/owner/spender address returns an error or empty result
- Contract address is not an ERC-20 token — allowance field may be null and permissions empty
- Network outage or RPC node failure on Base could cause request timeout
- Missing required 'contract' query parameter results in a validation error
- Non-Base contract addresses (e.g. Ethereum mainnet) will not return valid data as the service is scoped to Base (chainId 8453)

## How this service works

Paid on-chain token, wallet, contract and research data over x402 on Base.

## Output

Returns a JSON object containing the allowance value (or null), a permissions array, flags array, owner and spender addresses, the queried contract address, chainId (8453 for Base), network name, whether data came from cache, and a generatedAt timestamp.

## Request schema (JSON Schema)

```json
{
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "method": {
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "contract"
     ],
     "properties": {
      "owner": {
       "type": "string",
       "description": "Owner address (0x..)"
      },
      "spender": {
       "type": "string",
       "description": "Spender address (0x..)"
      },
      "contract": {
       "type": "string",
       "description": "ERC-20 contract address (0x..)"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "properties": {
    "flags": {
     "type": "array"
    },
    "owner": {
     "type": "string"
    },
    "query": {
     "type": "string"
    },
    "chainId": {
     "type": "number"
    },
    "network": {
     "type": "string"
    },
    "spender": {
     "type": "string"
    },
    "contract": {
     "type": "string"
    },
    "allowance": {},
    "fromCache": {
     "type": "boolean"
    },
    "generatedAt": {
     "type": "string"
    },
    "permissions": {
     "type": "array"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "flags": [],
  "owner": "0x..",
  "query": "0x..",
  "chainId": 8453,
  "network": "base",
  "spender": "0x..",
  "contract": "0x..",
  "allowance": null,
  "fromCache": false,
  "generatedAt": "2026-01-01T00:00:00.000Z",
  "permissions": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/coinopselect-contract-permissions-query-0b171a71/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from coinop.publicvm.com](https://www.zero.xyz/host/coinop.publicvm.com/llms.txt)
