Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

wallet_getPermissions

Get all permissions for an account.

Authentication Required: No (if address provided)

Request

await jaw.provider.request({
  method: 'wallet_getPermissions',
  params: [{ address: '0x1234...' }],
});

Parameters

NameTypeRequiredDescription
addressstringNo*Account address to query

*Required if not authenticated. Auto-injected if authenticated and not provided.

Example

[{ "address": "0x1234567890123456789012345678901234567890" }]

Or when authenticated (auto-injects address):

[]

Response

Returns an array of permission objects.

Type: array

Example

[
  {
    "id": "0xabc123...",
    "account": "0x1234567890123456789012345678901234567890",
    "spender": "0x5678901234567890123456789012345678901234",
    "chainId": "0x1",
    "expiry": 1735689600,
    "calls": [{
      "target": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "selector": "0xa9059cbb"
    }],
    "spends": [{
      "token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
      "limit": "0x16345785d8a0000",
      "period": "day"
    }]
  }
]

Permission Object Fields

FieldTypeDescription
idstringUnique permission identifier (hash)
accountstringAccount that granted the permission
spenderstringAddress that received permissions
chainIdstringChain ID (hex)
expirynumberUnix timestamp when permission expires
callsarrayGranted call permissions
spendsarrayGranted spend limits

Behavior

  • Can be called without authentication if address provided
  • Auto-injects connected address if authenticated
  • Returns empty array if no permissions found

Errors

CodeDescription
-32602Invalid params (address required when not authenticated)

Example

const permissions = await jaw.provider.request({
  method: 'wallet_getPermissions',
});

Related Methods