Wall-E

Wall-E · GPT 작업

Wall-E

The Wall-E API offers a secure platform for Ethereum wallet and cryptocurrency management. It supports operations such as authentication, wallet creation, asset listing, balance checking, and cryptocurrency transactions. Designed with security in mind, it uses OAuth2 for authentication, ensuring safe and authorized access to its features. This API serves as a foundational tool for blockchain-related activities, facilitating efficient and secure management of digital assets.

  • GET /authAuthentication Proxy

    Initiates the authentication process by redirecting the user to the authorization service. This endpoint is the first step in obtaining the necessary credentials for accessing protected endpoints within the Wall-E API. It should be used to start the OAuth2 authorization flow.

  • POST /tokenAccess Token Proxy

    Exchanges an authorization code for an access token. After the user has been successfully authenticated and has granted consent, this endpoint is used to obtain an access token and, optionally, a refresh token. The access token is then used to authorize requests to other protected endpoints.

  • GET /create_walletCreate Ethereum Wallet Address

    Generates a new Ethereum wallet address for the user. This endpoint creates a cryptocurrency wallet that can be used to manage assets within the Wall-E ecosystem. The response includes details necessary to interact with the newly created wallet.

  • GET /list_assetsList Wallet Assets

    Retrieves a list of all cryptocurrency assets held within the user's connected wallet. This endpoint displays the types and quantities of cryptocurrencies stored, providing users with a comprehensive view of their digital assets.

  • GET /get_balanceCurrent Wallet Ballance

    Checks and returns the current balance of the connected Ethereum wallet. This action allows you to quickly find out the total value of all cryptocurrencies in your wallet. Just ask to check your balance, and you'll get the latest update on your asset distribution.

  • POST /send_cryptoSend Crypto

    Enables the secure wallet to wallet transfer of cryptocurrency. This endpoint facilitates the sending of assets, requiring details such as the recipient's email address, the amount, and the cryptocurrency type. Wall-E ensures secure transactions. Wall-E charges 1.5% commission.

  • POST /inviteInvites new users to Wall-E

    Allows a current user to invite their friends and colleagues to join Wall-E. This operation requires the user to provide a comma-separated list of the recipients' email addresses.

  • POST /feedbackSend feedback to Wall-E

    Allows a current user send feedback to Wall-E. This operation requires the user to provide a feedback message.

  • POST /find_friendsFind a users friends on Wall-E

    Allows a current Wall-E user to search for their friends and colleagues on the Wall-E network using their email address.

  • POST /fund_walletInforms the user about how they might fund their wallet

    Provides instructions and guidance about how the user might add test cryptocurrency funds to their wallet.

  • POST /price_checkGets the current value of a cryptocurrency

    Provides the current price of a specific cryptocurrency in a specified fiat currency

  • POST /create_imageCreates an image using Dall-E for converting into an NFT

    Allows a current Wall-E user to create an image with OpenAI Dall-E using a prompt

  • POST /mint_nftMints an NFT from a digital image generated by create_image endpoint

    Allows a current Wall-E user to convert a digital image to an NFT so it can be sold on an NFT marketplace

원본 API 스키마
{
  "openapi": "3.1.0",
  "info": {
    "title": "Wall-E",
    "description": "The Wall-E API offers a secure platform for Ethereum wallet and cryptocurrency management. It supports operations such as authentication, wallet creation, asset listing, balance checking, and cryptocurrency transactions. Designed with security in mind, it uses OAuth2 for authentication, ensuring safe and authorized access to its features. This API serves as a foundational tool for blockchain-related activities, facilitating efficient and secure management of digital assets.",
    "contact": {
      "name": "Wall-E Support",
      "url": "https://yodigital.co.uk/wall-e",
      "email": "info@yodigital.co.uk"
    },
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://johntyb.eu.pythonanywhere.com",
      "description": "Wall-E API server"
    }
  ],
  "paths": {
    "/auth": {
      "get": {
        "summary": "Authentication Proxy",
        "description": "Initiates the authentication process by redirecting the user to the authorization service. This endpoint is the first step in obtaining the necessary credentials for accessing protected endpoints within the Wall-E API. It should be used to start the OAuth2 authorization flow.",
        "operationId": "proxyAuth",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/token": {
      "post": {
        "summary": "Access Token Proxy",
        "description": "Exchanges an authorization code for an access token. After the user has been successfully authenticated and has granted consent, this endpoint is used to obtain an access token and, optionally, a refresh token. The access token is then used to authorize requests to other protected endpoints.",
        "operationId": "proxyToken",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/create_wallet": {
      "get": {
        "summary": "Create Ethereum Wallet Address",
        "description": "Generates a new Ethereum wallet address for the user. This endpoint creates a cryptocurrency wallet that can be used to manage assets within the Wall-E ecosystem. The response includes details necessary to interact with the newly created wallet.",
        "operationId": "createWallet",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/NewWalletResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ExistingWalletResponse"
                    }
                  ],
                  "title": "Response Createwallet"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/list_assets": {
      "get": {
        "summary": "List Wallet Assets",
        "description": "Retrieves a list of all cryptocurrency assets held within the user's connected wallet. This endpoint displays the types and quantities of cryptocurrencies stored, providing users with a comprehensive view of their digital assets.",
        "operationId": "listAssets",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/get_balance": {
      "get": {
        "summary": "Current Wallet Ballance",
        "description": "Checks and returns the current balance of the connected Ethereum wallet. This action allows you to quickly find out the total value of all cryptocurrencies in your wallet. Just ask to check your balance, and you'll get the latest update on your asset distribution.",
        "operationId": "walletBalance",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/send_crypto": {
      "post": {
        "summary": "Send Crypto",
        "description": "Enables the secure wallet to wallet transfer of cryptocurrency. This endpoint facilitates the sending of assets, requiring details such as the recipient's email address, the amount, and the cryptocurrency type. Wall-E ensures secure transactions. Wall-E charges 1.5% commission.",
        "operationId": "sendCrypto",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendCryptoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/SendCryptoResponse"
                    },
                    {
                      "$ref": "#/components/schemas/InviteResponse"
                    }
                  ],
                  "title": "Response Sendcrypto"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/invite": {
      "post": {
        "summary": "Invites new users to Wall-E",
        "description": "Allows a current user to invite their friends and colleagues to join Wall-E. This operation requires the user to provide a comma-separated list of the recipients' email addresses.",
        "operationId": "inviteUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteSentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/feedback": {
      "post": {
        "summary": "Send feedback to Wall-E",
        "description": "Allows a current user send feedback to Wall-E. This operation requires the user to provide a feedback message.",
        "operationId": "feedback",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeedbackRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackSentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/find_friends": {
      "post": {
        "summary": "Find a users friends on Wall-E",
        "description": "Allows a current Wall-E user to search for their friends and colleagues on the Wall-E network using their email address.",
        "operationId": "findFriends",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/fund_wallet": {
      "post": {
        "summary": "Informs the user about how they might fund their wallet",
        "description": "Provides instructions and guidance about how the user might add test cryptocurrency funds to their wallet.",
        "operationId": "fundWallet",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/price_check": {
      "post": {
        "summary": "Gets the current value of a cryptocurrency",
        "description": "Provides the current price of a specific cryptocurrency in a specified fiat currency",
        "operationId": "priceCheck",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/create_image": {
      "post": {
        "summary": "Creates an image using Dall-E for converting into an NFT",
        "description": "Allows a current Wall-E user to create an image with OpenAI Dall-E using a prompt",
        "operationId": "createImage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createImageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    },
    "/mint_nft": {
      "post": {
        "summary": "Mints an NFT from a digital image generated by create_image endpoint",
        "description": "Allows a current Wall-E user to convert a digital image to an NFT so it can be sold on an NFT marketplace",
        "operationId": "mintNFT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MintRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2AuthorizationCodeBearer": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ExistingWalletResponse": {
        "properties": {
          "eth_public_key": {
            "type": "string",
            "title": "Eth Public Key",
            "description": "The public key of the user's existing Ethereum wallet."
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A message reminding the user that they already have a wallet."
          }
        },
        "type": "object",
        "required": [
          "eth_public_key",
          "message"
        ],
        "title": "ExistingWalletResponse"
      },
      "FeedbackRequest": {
        "properties": {
          "feedback_message": {
            "type": "string",
            "title": "Feedback Message",
            "description": "A feedback message from the user to Wall-E. This field requires user input."
          }
        },
        "type": "object",
        "required": [
          "feedback_message"
        ],
        "title": "FeedbackRequest"
      },
      "FeedbackSentResponse": {
        "properties": {
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A response to the feedback from Wall-E."
          }
        },
        "type": "object",
        "required": [
          "message"
        ],
        "title": "FeedbackSentResponse"
      },
      "FindRequest": {
        "properties": {
          "recipientEmail": {
            "items": {
              "type": "string",
              "format": "email"
            },
            "type": "array",
            "title": "Recipientemail",
            "description": "An email address of an individual to check if they're using Wall-E."
          }
        },
        "type": "object",
        "required": [
          "recipientEmail"
        ],
        "title": "FindRequest"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "InviteRequest": {
        "properties": {
          "recipientEmail": {
            "items": {
              "type": "string",
              "format": "email"
            },
            "type": "array",
            "title": "Recipientemail",
            "description": "A list of email addresses, supplied by the user, belonging to individuals who are not yet using Wall-E."
          }
        },
        "type": "object",
        "required": [
          "recipientEmail"
        ],
        "title": "InviteRequest"
      },
      "InviteResponse": {
        "properties": {
          "recipientEmail": {
            "type": "string",
            "format": "email",
            "title": "Recipientemail",
            "description": "The email address of a recipient that is not currently a Wall-E user."
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A message explaining that the recipient isnt currently a Wall-E user and would need to signup before funds can be sent to them."
          }
        },
        "type": "object",
        "required": [
          "recipientEmail",
          "message"
        ],
        "title": "InviteResponse"
      },
      "InviteSentResponse": {
        "properties": {
          "recipientEmail": {
            "items": {
              "type": "string",
              "format": "email"
            },
            "type": "array",
            "title": "Recipientemail",
            "description": "The email addresses of a recipients that have been invited to Wall-E. This field requires user input."
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A message informing the Wall-E user that an invite has been sent to their friend."
          }
        },
        "type": "object",
        "required": [
          "recipientEmail",
          "message"
        ],
        "title": "InviteSentResponse"
      },
      "MintRequest": {
        "properties": {
          "imgTitle": {
            "type": "string",
            "title": "Imgtitle",
            "description": "The title of the image."
          },
          "imgDescription": {
            "type": "string",
            "title": "Imgdescription",
            "description": "The description of the image."
          },
          "imageURL": {
            "type": "string",
            "title": "Imageurl",
            "description": "The URL of the image."
          }
        },
        "type": "object",
        "required": [
          "imgTitle",
          "imgDescription",
          "imageURL"
        ],
        "title": "MintRequest"
      },
      "NewWalletResponse": {
        "properties": {
          "provider": {
            "type": "string",
            "title": "Provider",
            "description": "The service provider or blockchain network used for creating the Ethereum wallet."
          },
          "eth_private_key": {
            "type": "string",
            "title": "Eth Private Key",
            "description": "The private key associated with the Ethereum wallet. It should be kept secure and not shared."
          },
          "eth_public_key": {
            "type": "string",
            "title": "Eth Public Key",
            "description": "The public key associated with the Ethereum wallet."
          },
          "eth_mnemonic": {
            "type": "string",
            "title": "Eth Mnemonic",
            "description": "A mnemonic phrase associated with the wallet, used to generate its keys."
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A message informing the user about the new wallet creation and security practices."
          }
        },
        "type": "object",
        "required": [
          "provider",
          "eth_private_key",
          "eth_public_key",
          "eth_mnemonic",
          "message"
        ],
        "title": "NewWalletResponse"
      },
      "PriceRequest": {
        "properties": {
          "currencyType": {
            "type": "string",
            "title": "Currencytype",
            "description": "The type of cryptocurrency (e.g., BTC, ETH)."
          },
          "fiatType": {
            "type": "string",
            "title": "Fiattype",
            "description": "The symbol of fiat currency to use when returning a price (e.g., USD, GBP)."
          }
        },
        "type": "object",
        "required": [
          "currencyType",
          "fiatType"
        ],
        "title": "PriceRequest"
      },
      "SendCryptoRequest": {
        "properties": {
          "recipientEmail": {
            "type": "string",
            "format": "email",
            "title": "Recipientemail",
            "description": "The email address of the recipient."
          },
          "amount": {
            "type": "number",
            "title": "Amount",
            "description": "The amount of cryptocurrency to send."
          },
          "currencyType": {
            "type": "string",
            "title": "Currencytype",
            "description": "The type of cryptocurrency to send (e.g., BTC, ETH)."
          }
        },
        "type": "object",
        "required": [
          "recipientEmail",
          "amount",
          "currencyType"
        ],
        "title": "SendCryptoRequest"
      },
      "SendCryptoResponse": {
        "properties": {
          "transactionId": {
            "type": "string",
            "title": "Transactionid",
            "description": "The unique identifier of the transaction."
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "The status of the transaction (e.g., 'pending', 'completed')."
          },
          "confirmationUrl": {
            "type": "string",
            "title": "Confirmationurl",
            "description": "A URL to track the transaction status on the blockchain network."
          }
        },
        "type": "object",
        "required": [
          "transactionId",
          "status",
          "confirmationUrl"
        ],
        "title": "SendCryptoResponse"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "createImageRequest": {
        "properties": {
          "imagePrompt": {
            "type": "string",
            "title": "Imageprompt",
            "description": "The prompt describing an image the user would like generated."
          }
        },
        "type": "object",
        "required": [
          "imagePrompt"
        ],
        "title": "createImageRequest"
      }
    },
    "securitySchemes": {
      "OAuth2AuthorizationCodeBearer": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "scopes": {},
            "authorizationUrl": "https://dev-ooj6cm1pq8awiyje.us.auth0.com/authorize",
            "tokenUrl": "https://dev-ooj6cm1pq8awiyje.us.auth0.com/oauth/token"
          }
        }
      }
    }
  }
}