> ## 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.

# Wallet block proposals

> Channel name: `{wallet}.block_proposals`. Private channel (requires authentication) that streams the block proposals that you made or received as recipient_wallet, where {wallet} is your wallet address in EIP-55 checksummed form. The server does not normalize the case of the channel name, so a subscription with any other casing receives nothing. The maker and the recipient of a proposal receive it when it is sent and when it ends: executed, cancelled, declined or expired. They also receive 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 private/get_block_proposals shape.



## AsyncAPI

````yaml subscriptions.asyncapi.json walletBlockProposals
id: walletBlockProposals
title: Wallet block proposals
description: >-
  Channel name: `{wallet}.block_proposals`. Private channel (requires
  authentication) that streams the block proposals that you made or received as
  recipient_wallet, where {wallet} is your wallet address in EIP-55 checksummed
  form. The server does not normalize the case of the channel name, so a
  subscription with any other casing receives nothing. The maker and the
  recipient of a proposal receive it when it is sent and when it ends: executed,
  cancelled, declined or expired. They also receive 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
  private/get_block_proposals shape.
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_5
    id: receive_walletBlockProposals
    title: Receive_wallet block proposals
    type: send
    messages:
      - &ref_8
        id: walletBlockProposalsNotification
        payload:
          - name: walletBlockProposalsNotification
            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: maker_wallet
                type: string
                description: >-
                  20-byte Ethereum address as a 0x-prefixed lowercase hex
                  string.
                required: true
              - name: proposal_id
                type: string
                description: UUID v4 string
                required: true
              - name: recipient_wallet
                type: string
                description: >-
                  The only wallet that can accept the proposal. Null if any
                  wallet can.
                required: false
              - name: risk_universe_id
                type: integer
                required: true
              - name: status
                type: string
                required: true
        headers: []
        jsonPayloadSchema:
          description: A block proposal as its maker and its recipient see it.
          type: object
          required:
            - block_trade_id
            - creation_timestamp
            - currency
            - direction
            - expires_at_sec
            - last_update_timestamp
            - legs
            - listed
            - maker_wallet
            - 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-241>
            creation_timestamp:
              type: integer
              format: int64
              x-parser-schema-id: <anonymous-schema-242>
            currency:
              type: string
              x-parser-schema-id: <anonymous-schema-243>
            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-244>
            last_update_timestamp:
              type: integer
              format: int64
              x-parser-schema-id: <anonymous-schema-245>
            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-246>
            listed:
              description: Whether the proposal is on the public list.
              type: boolean
              x-parser-schema-id: <anonymous-schema-247>
            maker_wallet: &ref_1
              description: 20-byte Ethereum address as a 0x-prefixed lowercase hex string.
              type: string
              maxLength: 42
              minLength: 42
              pattern: ^0x[0-9a-fA-F]{40}$
              x-parser-schema-id: Address
            proposal_id:
              description: UUID v4 string
              type: string
              format: uuid
              x-parser-schema-id: <anonymous-schema-248>
            recipient_wallet:
              description: >-
                The only wallet that can accept the proposal. Null if any wallet
                can.
              anyOf:
                - *ref_1
                - type: 'null'
                  x-parser-schema-id: <anonymous-schema-250>
              x-parser-schema-id: <anonymous-schema-249>
            risk_universe_id:
              type: integer
              format: uint32
              minimum: 0
              x-parser-schema-id: <anonymous-schema-251>
            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: BlockProposalPrivateResponse
        title: Wallet 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,
            "maker_wallet": "<string>",
            "proposal_id": "<string>",
            "recipient_wallet": "<string>",
            "risk_universe_id": 123,
            "status": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: walletBlockProposalsNotification
    bindings: []
    extensions: &ref_3
      - id: x-parser-unique-object-id
        value: walletBlockProposals
  - &ref_4
    id: send_subscribe_walletBlockProposals
    title: Send_subscribe_wallet block proposals
    type: receive
    messages:
      - &ref_6
        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_2
              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_7
        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_2
            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_3
sendOperations:
  - *ref_4
receiveOperations:
  - *ref_5
sendMessages:
  - *ref_6
  - *ref_7
receiveMessages:
  - *ref_8
extensions:
  - id: x-parser-unique-object-id
    value: walletBlockProposals
securitySchemes: []

````

## Related topics

- [private/send_block_proposal](https://docs.derive.xyz/api-reference/rfq/privatesend_block_proposal.md)
- [RFQ Trading](https://docs.derive.xyz/trading/rfq.md)
- [Changelog](https://docs.derive.xyz/changelog.md)


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