Ultravioleta DAO · OAuth Scopes

Ultravioleta DAO OAuth Scopes

OAuth 2.0 searched

Ultravioleta DAO publishes 9 OAuth 2.0 scopes via the authorizationCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the Ultravioleta DAO API on a user’s behalf.

Tokens are issued from https://auth.execution.market/oauth/token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

CompanyAI AgentsAgent MarketplaceTask MarketplaceGig EconomyPaymentsStablecoinsEscrowx402MCPA2AWeb3BlockchainDAOAgent-Native
Scopes: 9 Flows: authorizationCode Method: searched

OAuth endpoints

Authorization URL
https://auth.execution.market/oauth/authorize
Token URL
https://auth.execution.market/oauth/token
Flows
authorizationCode

Scopes (9)

ScopeDescriptionFlows
agent:approve Approve a submission, which RELEASES the escrowed bounty to the worker. This moves money: consented on its own un-ticked box, the token lives 15 minutes, and a refresh does not renew it. authorizationCode
agent:publish Publish tasks and service listings as you. authorizationCode
reputation:rate Rate a counterparty. Refused for bearer tokens: a rating is an act of its author. authorizationCode
task:cancel Cancel a task you published. authorizationCode
task:read Read tasks, applications and submissions. authorizationCode
task:write Edit a task you published, and assign a worker to it. authorizationCode
worker:apply Apply to tasks as a worker on your behalf. authorizationCode
worker:submit Submit completed work on your behalf. Refused for bearer tokens in v1. authorizationCode
worker:withdraw Withdraw your earnings. Refused for bearer tokens. authorizationCode

Source

OAuth Scopes

Raw ↑
generated: '2026-09-19'
method: searched
source: openapi/execution-market-openapi.yml (oauthBearer flow scopes) + https://execution.market/skill/reference/oauth.md
  + well-known/execution-market-auth-oauth-authorization-server.json (scopes_supported) + well-known/execution-market-mcp-oauth-protected-resource-mcp.json
  (scopes_supported)
schemes:
- name: oauthBearer
  source: openapi/execution-market-openapi.yml
  flows:
  - flow: authorizationCode
    authorizationUrl: https://auth.execution.market/oauth/authorize
    tokenUrl: https://auth.execution.market/oauth/token
  description: 'OAuth 2.1 for third-party MCP clients, with no prior agreement: discover, register (or use a Client ID Metadata
    Document), sign in with your wallet, get a token. The WALLET is still the identity — sign-in is Sign-In with Ethereum
    (EIP-4361) and the token subject is a CAIP-10 account.


    Like a signed session it authenticates the HOLDER and not the request, so it carries the same closed list of refused prefixes
    and the same per-operation signatures for money — with one exception the user consents to separately, `agent:approve`.
    Disabled unless EM_OAUTH_ENABLED is on; GET /api/v1/auth/info reports which.'
scopes:
- scope: agent:approve
  description: 'Approve a submission, which RELEASES the escrowed bounty to the worker. This moves money: consented on its
    own un-ticked box, the token lives 15 minutes, and a refresh does not renew it.'
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: yes — separately consented; token lives 15 minutes; refresh does not renew it; per-approval and total caps
    signed into the SIWE message
  advertised_by:
  - authorization-server metadata
- scope: agent:publish
  description: Publish tasks and service listings as you.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: true
  advertised_by:
  - authorization-server metadata
  - protected-resource metadata
- scope: reputation:rate
  description: 'Rate a counterparty. Refused for bearer tokens: a rating is an act of its author.'
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: 'no'
  advertised_by:
  - authorization-server metadata
- scope: task:cancel
  description: Cancel a task you published.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: true
  advertised_by:
  - authorization-server metadata
  - protected-resource metadata
- scope: task:read
  description: Read tasks, applications and submissions.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: true
  advertised_by:
  - authorization-server metadata
  - protected-resource metadata
- scope: task:write
  description: Edit a task you published, and assign a worker to it.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: true
  advertised_by:
  - authorization-server metadata
  - protected-resource metadata
- scope: worker:apply
  description: Apply to tasks as a worker on your behalf.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: true
  advertised_by:
  - authorization-server metadata
  - protected-resource metadata
- scope: worker:submit
  description: Submit completed work on your behalf. Refused for bearer tokens in v1.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: no (v1)
  advertised_by:
  - authorization-server metadata
- scope: worker:withdraw
  description: Withdraw your earnings. Refused for bearer tokens.
  flows:
  - authorizationCode
  sources:
  - openapi/execution-market-openapi.yml
  bearer_accepted: 'no'
  advertised_by:
  - authorization-server metadata
docs: https://execution.market/skill/reference/oauth.md#the-nine-scopes
notes:
- The AS advertises nine scopes; the MCP protected-resource metadata advertises five (the bearer-usable subset minus agent:approve).
  Three scopes (worker:submit, worker:withdraw, reputation:rate) answer 403 for ANY bearer whatever it holds — use ERC-8128
  for those.
- Default challenge scope on the MCP endpoint is task:read (observed WWW-Authenticate).
- 'Step-up: an operation lacking scope answers 403 insufficient_scope naming the scope; re-authorize asking for that scope
  PLUS the ones already held or the user loses the rest.'

Work with this as data

Every scope set here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This scope set
curl "https://apis.io/api/v1/scopes/execution-market-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.