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

# Meta-transaction relayer: HelloNear pays the gas for an owner's signed registry call (NEP-366)

> The owner signs a delegate action in their own NEAR wallet; the relayer wraps it in a transaction and pays the gas. Only for `REGISTRY_CONTRACT_ID`, only `unequip_skill` and `set_wallet` with exactly 1 yoctoNEAR (the relayer would pay any deposit), at most 4 calls of at most 30 Tgas, a full-access key, a nonce above the key's, and an expiry at most 1000 blocks ahead. 10 per owner per hour.



## OpenAPI

````yaml https://raw.githubusercontent.com/Hellonear-AI/hellonear/main/docs/openapi.json post /v1/relay
openapi: 3.1.0
info:
  title: HelloNear API
  version: 1.0.0
  description: >-
    The public HTTP API behind https://app.hellonear.xyz (NEAR testnet). Sign in
    with a NEAR wallet (NEP-413: `/v1/auth/challenge`, then `/v1/auth/login`) or
    start a try-out session with `POST /v1/auth/demo`; both set the `hn_session`
    cookie. Chat, approvals, attack and workflow runs stream server-sent events;
    every event type is described in docs/api-contract.md §3.
servers:
  - url: https://api.hellonear.xyz
    description: Hosted demo (NEAR testnet)
  - url: http://localhost:4000
    description: Local
security:
  - session: []
paths:
  /v1/relay:
    post:
      tags:
        - Wallet
      summary: >-
        Meta-transaction relayer: HelloNear pays the gas for an owner's signed
        registry call (NEP-366)
      description: >-
        The owner signs a delegate action in their own NEAR wallet; the relayer
        wraps it in a transaction and pays the gas. Only for
        `REGISTRY_CONTRACT_ID`, only `unequip_skill` and `set_wallet` with
        exactly 1 yoctoNEAR (the relayer would pay any deposit), at most 4 calls
        of at most 30 Tgas, a full-access key, a nonce above the key's, and an
        expiry at most 1000 blocks ahead. 10 per owner per hour.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - signedDelegate
              properties:
                signedDelegate:
                  type: string
                  description: >-
                    Base64 of the Borsh-encoded SignedDelegate (near-api-js
                    `encodeSignedDelegate`)
      responses:
        '200':
          description: >-
            `{ txHash, status: "success" | "failure", senderId, receiverId,
            methods, failure? }`
        '400':
          description: >-
            `invalid_signed_delegate | receiver_not_allowed | method_not_allowed
            | deposit_not_allowed | action_not_allowed | too_many_actions |
            gas_too_high | args_too_large | args_not_json | unsupported_key_type
            | bad_signature | delegate_expired | delegate_ttl_too_long |
            unknown_access_key | key_not_full_access | stale_nonce`
        '401':
          description: Not signed in
        '403':
          description: >-
            `delegate_sender_mismatch` (signed by another account) |
            `demo_not_allowed`
        '429':
          description: '`relay_rate_limited`'
        '503':
          description: '`relay_not_configured | rpc_unreachable | relay_failed`'
components:
  securitySchemes:
    session:
      type: apiKey
      in: cookie
      name: hn_session

````

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