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

# Wallet Submission

> Submits a new wallet address to associate with an airdrop participant. Verifies the signed message from their wallet.



## OpenAPI

````yaml /apis/portal/openapi.json post /api/v2/{portalId}/submission/wallet
openapi: 3.0.2
info:
  title: Magna Portal API
  version: 1.0.0
servers: []
security: []
tags:
  - name: Auth
    description: Authentication related endpoints
  - name: Token
    description: Token claiming
  - name: Config
    description: Portal configuration
  - name: Misc
    description: Miscellaneous operational endpoints
  - name: Staking
    description: Staking pool operations
  - name: Compliance
    description: Wallet compliance operations
paths:
  /api/v2/{portalId}/submission/wallet:
    post:
      tags:
        - Submission
      summary: Wallet Submission
      description: >-
        Submits a new wallet address to associate with an airdrop participant.
        Verifies the signed message from their wallet.
      parameters:
        - name: portalId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: unique portal id (provided by Magna)
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                wallet:
                  type: string
                  description: wallet address to generate a nonce for
                platform:
                  type: string
                  enum:
                    - EVM
                    - MOVE
                    - SOLANA
                    - OTHER
                message:
                  type: string
                  description: message that was signed
                signature:
                  type: string
                  description: signed message from the wallet owner
              required:
                - wallet
                - platform
                - message
                - signature
      responses:
        '201':
          description: '201'
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    type: object
                    properties:
                      value:
                        type: string
                        description: eligible account value
                      type:
                        type: string
                        enum:
                          - EMAIL
                          - X_HANDLE
                          - WALLET
                          - DISCORD
                        description: eligible account type
                      isEligible:
                        type: boolean
                        description: whether the account is eligible
                      description:
                        type: string
                        nullable: true
                        description: optional description for the account eligibility
                    required:
                      - value
                      - type
                      - isEligible
                      - description
                required:
                  - account
        '400':
          description: Client Error
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      errors:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                    required:
                      - errors
                  - type: object
                    properties:
                      error:
                        oneOf:
                          - type: string
                            enum:
                              - DISTRIBUTION_NOT_FOUND
                              - HUMANITY_CHECK_INCOMPLETE
                              - DISTRIBUTION_NOT_STARTED
                              - STAKING_POOL_NOT_FOUND
                              - STAKE_NOT_FOUND
                          - type: string
                    required:
                      - error
                description: Client Error
                example:
                  errors:
                    - path: query.wallet
                      message: Required
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: error message
                required:
                  - error
                description: Unauthorized
                example:
                  error: Invalid signature
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: error message
                required:
                  - error
                description: Conflict
                example:
                  error: This account has already been linked to another participant
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: error message
                required:
                  - error
                description: Server Error
                example:
                  error: internal server error

````