> ## Documentation Index
> Fetch the complete documentation index at: https://docs.range.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Evaluate a proposed transaction against the treasury policies

> Takes a transaction intent — the transaction you are about to sign — and answers whether Range’s treasury policies allow it. Returns every breaching policy with a reason and the projected effect, so the breach can be previewed before anything is submitted. A breach is blocking: there is no warn tier on this surface. Read-only — evaluating an intent records nothing and notifies no one.



## OpenAPI

````yaml /api-reference/platform-api.json post /v2/intents/evaluate
openapi: 3.0.0
info:
  title: Range Platform API
  description: >-
    The Range Platform API for workspace management, counterparties, and
    operational tooling.
  version: 1.7.21
  contact: {}
servers:
  - url: https://api.range.org
    description: Range API Server
security:
  - Authorization: []
  - Authorization: []
tags:
  - name: Address Information
    description: Get information about a crypto address.
  - name: Transfer Enrichments
    description: Attach workspace-scoped notes and categories to transfers.
  - name: Counterparties
    description: Manage external entities, their addresses, bank accounts, and documents.
paths:
  /v2/intents/evaluate:
    post:
      tags:
        - Intents
      summary: Evaluate a proposed transaction against the treasury policies
      description: >-
        Takes a transaction intent — the transaction you are about to sign — and
        answers whether Range’s treasury policies allow it. Returns every
        breaching policy with a reason and the projected effect, so the breach
        can be previewed before anything is submitted. A breach is blocking:
        there is no warn tier on this surface. Read-only — evaluating an intent
        records nothing and notifies no one.
      operationId: evaluate
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluateIntentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluateIntentResponseDto'
components:
  schemas:
    EvaluateIntentDto:
      type: object
      properties:
        network:
          type: string
          example: eth
          description: Network the proposed transaction would settle on.
        from:
          type: string
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28'
          description: Sending address — the position the projection debits.
        to:
          type: string
          example: '0x8ba1f109551bD432803012645Ac136ddd64DBA72'
          description: Destination address.
        asset:
          type: string
          maxLength: 64
          example: USDC
          description: Asset ticker, matched against the workspace balance tickers.
        amount:
          type: string
          maxLength: 64
          example: '15000.50'
          description: >-
            Quantity in asset units, as a positive decimal string. Optional:
            every rule on this surface is denominated in USD, so the evaluation
            reads `amount_usd` and carries this only as caller context.
        amount_usd:
          type: string
          maxLength: 64
          example: '15000.50'
          description: >-
            USD value of the proposed transaction. Required: every C149 rule is
            denominated in USD, and on a blocking path the caller’s own
            execution quote is the right price to judge against.
        counterparty_id:
          type: string
          format: uuid
          example: 9d5c1a7e-4f3b-4c2a-8e6d-1b2c3d4e5f60
          description: >-
            Expected counterparty for the destination. Must belong to the caller
            workspace and cover the destination address, otherwise the
            destination is treated as unknown.
      required:
        - network
        - from
        - to
        - asset
        - amount_usd
    EvaluateIntentResponseDto:
      type: object
      properties:
        verdict:
          type: string
          enum:
            - blocked
            - allowed
          description: >-
            A breach is blocking: there is no warn tier on this surface. Both
            outcomes are HTTP 200 — a block is a successful evaluation.
        breaches:
          type: array
          items:
            $ref: '#/components/schemas/IntentBreachDto'
        evaluated_policies:
          type: number
          example: 4
          description: How many treasury policies were evaluated.
      required:
        - verdict
        - breaches
        - evaluated_policies
    IntentBreachDto:
      type: object
      properties:
        policy_key:
          type: string
          example: treasury.asset_concentration
          description: >-
            Stable identifier of the breached policy, as listed by `GET
            /v2/intents/policies`.
        policy_type:
          type: string
          example: concentration
        policy_name:
          type: string
          example: Asset concentration bound
        reason:
          type: string
          example: >-
            Projected asset share for USDC is 34.2%, above the 30% bound
            (currently 28.1%)
        projected_effect:
          type: object
          description: >-
            What the intent would do, in the terms of the policy that refused
            it. Discriminated on `kind`; this is the preview of the breach.
          example:
            kind: concentration
            dimension: asset
            subject: USDC
            current_share_percent: 28.1
            projected_share_percent: 34.2
            bound_percent: 30
      required:
        - policy_key
        - policy_type
        - policy_name
        - reason
        - projected_effect
  securitySchemes:
    Authorization:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Authorization method required to allow user to access the api endpoints.

````