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

# Block proposals

> Channel name: `block_proposals`. Public channel that streams the listed block proposals. It sends a proposal when it is sent and when it ends: executed, cancelled or expired. It also sends it with status executing if the outcome of an accept is not known. An accept that fails and leaves the proposal open sends no event. Each event carries the whole proposal, in the public/get_block_proposals shape, and never shows a wallet, a subaccount or a signature. Takes no parameters.



## AsyncAPI

````yaml subscriptions.asyncapi.json blockProposals
id: blockProposals
title: Block proposals
description: >-
  Channel name: `block_proposals`. Public channel that streams the listed block
  proposals. It sends a proposal when it is sent and when it ends: executed,
  cancelled or expired. It also sends it with status executing if the outcome of
  an accept is not known. An accept that fails and leaves the proposal open
  sends no event. Each event carries the whole proposal, in the
  public/get_block_proposals shape, and never shows a wallet, a subaccount or a
  signature. Takes no parameters.
servers:
  - id: production
    protocol: wss
    host: api.derive.xyz
    bindings: []
    variables: []
  - id: testnet
    protocol: wss
    host: testnet.api.derive.xyz
    bindings: []
    variables: []
address: /v3/ws
parameters: []
bindings: []
operations:
  - &ref_4
    id: receive_blockProposals
    title: Receive_block proposals
    type: send
    messages:
      - &ref_7
        id: blockProposalsNotification
        payload:
          - name: blockProposalsNotification
            type: object
            properties:
              - name: block_trade_id
                type: string
                description: The block trade, once the proposal executes.
                required: true
              - name: creation_timestamp
                type: integer
                required: true
              - name: currency
                type: string
                required: true
              - name: direction
                type: string
                enumValues:
                  - buy
                  - sell
                required: true
              - name: expires_at_sec
                type: integer
                description: The last second (UTC) at which the proposal can be accepted.
                required: true
              - name: last_update_timestamp
                type: integer
                required: true
              - name: legs
                type: array
                required: true
                properties:
                  - name: amount
                    type: string
                    description: >-
                      Non-negative decimal string of the human value (e.g.
                      `"1.5"`), up to 12 fractional digits; a string or JSON
                      number is accepted
                    required: true
                  - name: direction
                    type: string
                    enumValues:
                      - buy
                      - sell
                    required: true
                  - name: instrument_name
                    type: string
                    required: true
                  - name: price
                    type: string
                    description: >-
                      Non-negative decimal string of the human value (e.g.
                      `"1.5"`), up to 12 fractional digits; a string or JSON
                      number is accepted
                    required: true
              - name: listed
                type: boolean
                description: Whether the proposal is on the public list.
                required: true
              - name: proposal_id
                type: string
                description: UUID v4 string
                required: true
              - name: risk_universe_id
                type: integer
                required: true
              - name: status
                type: string
                required: true
        headers: []
        jsonPayloadSchema:
          description: A block proposal as every other wallet sees it.
          type: object
          required:
            - block_trade_id
            - creation_timestamp
            - currency
            - direction
            - expires_at_sec
            - last_update_timestamp
            - legs
            - listed
            - proposal_id
            - risk_universe_id
            - status
          properties:
            block_trade_id:
              description: The block trade, once the proposal executes.
              type: string
              format: uuid
              nullable: true
              x-parser-schema-id: <anonymous-schema-29>
            creation_timestamp:
              type: integer
              format: int64
              x-parser-schema-id: <anonymous-schema-30>
            currency:
              type: string
              x-parser-schema-id: <anonymous-schema-31>
            direction: &ref_0
              type: string
              enum:
                - buy
                - sell
              x-parser-schema-id: Direction
            expires_at_sec:
              description: The last second (UTC) at which the proposal can be accepted.
              type: integer
              format: int64
              x-parser-schema-id: <anonymous-schema-32>
            last_update_timestamp:
              type: integer
              format: int64
              x-parser-schema-id: <anonymous-schema-33>
            legs:
              type: array
              items:
                type: object
                required:
                  - amount
                  - direction
                  - instrument_name
                  - price
                properties:
                  amount:
                    description: >-
                      Non-negative decimal string of the human value (e.g.
                      `"1.5"`), up to 12 fractional digits; a string or JSON
                      number is accepted
                    type: string
                    format: decimal
                    x-parser-schema-id: <anonymous-schema-35>
                  direction: *ref_0
                  instrument_name:
                    type: string
                    x-parser-schema-id: <anonymous-schema-36>
                  price:
                    description: >-
                      Non-negative decimal string of the human value (e.g.
                      `"1.5"`), up to 12 fractional digits; a string or JSON
                      number is accepted
                    type: string
                    format: decimal
                    x-parser-schema-id: <anonymous-schema-37>
                x-parser-schema-id: PricedLegParamsAndResponse
              x-parser-schema-id: <anonymous-schema-34>
            listed:
              description: Whether the proposal is on the public list.
              type: boolean
              x-parser-schema-id: <anonymous-schema-38>
            proposal_id:
              description: UUID v4 string
              type: string
              format: uuid
              x-parser-schema-id: <anonymous-schema-39>
            risk_universe_id:
              type: integer
              format: uint32
              minimum: 0
              x-parser-schema-id: <anonymous-schema-40>
            status:
              oneOf:
                - type: string
                  enum:
                    - open
                    - executing
                    - executed
                    - expired
                  x-parser-schema-id: <anonymous-schema-41>
                - description: By the maker.
                  type: string
                  enum:
                    - cancelled
                  x-parser-schema-id: <anonymous-schema-42>
                - description: By the recipient.
                  type: string
                  enum:
                    - declined
                  x-parser-schema-id: <anonymous-schema-43>
              x-parser-schema-id: BlockProposalStatus
          x-parser-schema-id: BlockProposalResultPublic
        title: Block proposals notification
        example: |-
          {
            "block_trade_id": "<string>",
            "creation_timestamp": 123,
            "currency": "<string>",
            "direction": "<string>",
            "expires_at_sec": 123,
            "last_update_timestamp": 123,
            "legs": {
              "amount": "<string>",
              "direction": "<string>",
              "instrument_name": "<string>",
              "price": "<string>"
            },
            "listed": true,
            "proposal_id": "<string>",
            "risk_universe_id": 123,
            "status": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: blockProposalsNotification
    bindings: []
    extensions: &ref_2
      - id: x-parser-unique-object-id
        value: blockProposals
  - &ref_3
    id: send_subscribe_blockProposals
    title: Send_subscribe_block proposals
    type: receive
    messages:
      - &ref_5
        id: subscribeRequest
        payload:
          - name: subscribeRequest
            description: >-
              Send to subscribe: list this channel's address (with the {param}
              segments filled, e.g. orderbook.ETH-PERP.10.20) in
              params.channels.
            type: object
            properties:
              - name: headers
                type: object
                description: Non-standard; used by `auth/login`.
                required: false
              - name: id
                type: anyOf
                required: true
              - name: method
                type: string
                description: subscribe
                required: true
              - name: params
                type: object
                description: >-
                  Params for `subscribe`. `channels` is the required list of
                  channel names to subscribe to.
                required: true
                properties:
                  - name: channels
                    type: array
                    required: true
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - id
            - method
            - params
          properties:
            headers:
              description: Non-standard; used by `auth/login`.
              type: object
              additionalProperties: true
              nullable: true
              x-parser-schema-id: <anonymous-schema-17>
            id: &ref_1
              anyOf:
                - type: string
                  x-parser-schema-id: <anonymous-schema-18>
                - type: number
                  x-parser-schema-id: <anonymous-schema-19>
                - type: 'null'
                  x-parser-schema-id: <anonymous-schema-20>
              x-parser-schema-id: JsonRpcId
            method:
              type: string
              const: subscribe
              x-parser-schema-id: <anonymous-schema-21>
            params:
              description: >-
                Params for `subscribe`. `channels` is the required list of
                channel names to subscribe to.
              type: object
              required:
                - channels
              properties:
                channels:
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-23>
                  x-parser-schema-id: <anonymous-schema-22>
              x-parser-schema-id: SubscribeParams
          x-parser-schema-id: <anonymous-schema-16>
        title: Subscribe request
        description: >-
          Send to subscribe: list this channel's address (with the {param}
          segments filled, e.g. orderbook.ETH-PERP.10.20) in params.channels.
        example: |-
          {
            "id": 1,
            "method": "subscribe",
            "params": {
              "channels": [
                "orderbook.ETH-PERP.10.20"
              ]
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: subscribeRequest
      - &ref_6
        id: unsubscribeRequest
        payload:
          - name: unsubscribeRequest
            description: >-
              Send to unsubscribe: list the channel addresses to drop in
              params.channels, or omit it to unsubscribe from everything.
            type: object
            properties:
              - name: headers
                type: object
                description: Non-standard; used by `auth/login`.
                required: false
              - name: id
                type: anyOf
                required: true
              - name: method
                type: string
                description: unsubscribe
                required: true
              - name: params
                type: object
                description: >-
                  Params for `unsubscribe`. `channels` is optional.


                  When omitted (or null) the connection unsubscribes from all
                  channels.
                required: true
                properties:
                  - name: channels
                    type: array
                    required: false
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - id
            - method
            - params
          properties:
            headers:
              description: Non-standard; used by `auth/login`.
              type: object
              additionalProperties: true
              nullable: true
              x-parser-schema-id: <anonymous-schema-25>
            id: *ref_1
            method:
              type: string
              const: unsubscribe
              x-parser-schema-id: <anonymous-schema-26>
            params:
              description: >-
                Params for `unsubscribe`. `channels` is optional.


                When omitted (or null) the connection unsubscribes from all
                channels.
              type: object
              properties:
                channels:
                  default: null
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-28>
                  nullable: true
                  x-parser-schema-id: <anonymous-schema-27>
              x-parser-schema-id: UnsubscribeParams
          x-parser-schema-id: <anonymous-schema-24>
        title: Unsubscribe request
        description: >-
          Send to unsubscribe: list the channel addresses to drop in
          params.channels, or omit it to unsubscribe from everything.
        example: No examples found
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: unsubscribeRequest
    bindings: []
    extensions: *ref_2
sendOperations:
  - *ref_3
receiveOperations:
  - *ref_4
sendMessages:
  - *ref_5
  - *ref_6
receiveMessages:
  - *ref_7
extensions:
  - id: x-parser-unique-object-id
    value: blockProposals
securitySchemes: []

````

## Related topics

- [RFQ Trading](https://docs.derive.xyz/trading/rfq.md)
- [Wallet block proposals](https://docs.derive.xyz/api-reference/channels/walletblockproposals.md)
- [private/accept_block_proposal](https://docs.derive.xyz/api-reference/rfq/privateaccept_block_proposal.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.