Difference between revisions of "Prime Specification"

From Bitcoin Wiki
Jump to: navigation, search
m (User)
Line 68: Line 68:
 
** accept request to mark specific FiatWithdrawal as fulfilled
 
** accept request to mark specific FiatWithdrawal as fulfilled
 
*** create entry in account history, remember fiat tx id(?)
 
*** create entry in account history, remember fiat tx id(?)
 +
 +
 +
===Buy/Sell===
 +
 +
====Buy bitcoins====
 +
* Instant buy
 +
** "I want to buy [____] BTC instantly."
 +
** "You will spend about ____ USD. Average BTC price will be about ____ USD."
 +
** "Please be aware this is only aproximation. Order book can change every second."
 +
** Technically equals to submitting buy order with infinite price.
 +
* Buy with price limit
 +
** "I want to buy [____] BTC at price [____] USD/BTC."
 +
** "You will spend about ____ USD. Average BTC price will be about ____ USD."
 +
** "You need at least ____ USD at hand to submit this order."
 +
** Validate user has enough funds to submit the order (assuming worst case scenario)
 +
** Block funds
 +
** Match with existing orders
 +
 +
====Sell bitcoins====
 +
* Instant sell
 +
** "I want to sell [____] BTC instantly."
 +
** "You will receive about ____ USD. Average BTC price will be about ____ USD."
 +
** "Please be aware..."
 +
** Technically equals to submitting sell order with 0 price.
 +
* Sell with price limit
 +
** "I want to sell [____] BTC at price [____] USD/BTC."
 +
** "You will receive about ____ USD. Average BTC price will be about ____ USD."
 +
** Validate user has enough funds to submit the order
 +
** Block funds
 +
** Match with existing orders
 +
** Smart defaults: all BTC, market price.

Revision as of 16:36, 19 April 2013

Functional

User

  • sign up with e-mail activation and TOS acceptance
  • sign in / out
  • password reset
    • reset link valid for 24h or one use whichever comes first
  • edit password and e-mail
    • with e-mail confirmation
  • two factor authentication
    • configuration
    • sign in
  • complete account removal (privacy feature)

Dashboard

Order book

  • live chart
  • live table

Last trades

  • live chart
  • live table

Account

  • Balances for the current market
  • History
    • every balance change must have a corresponding transaction
  • Open orders
    • cancel order

Deposit

Bitcoins

  • generation of personal input address
    • internal maintenance of user input addresses (every user has a list of input addresses)
  • displaying address and instructions to the user
    • funding user balance with incoming bitcoins
      • create entry in account history, remember bitcoin tx id

Fiat

  • internal (LAN-only) API for custom scripts to bump fiat balance
    • create entry in account history, remember fiat tx id

Withdraw

Bitcoins

  • edit bitcoin output address
  • confirm with e-mail link or Google Authenticator OTP
  • displaying form to send bitcoins
    • amount
    • instructions and fee information
    • send button with summary and confirmation
  • mechanism to actually send bitcoins
    • create entry in account history, remember bitcoin tx id

Fiat

  • edit bank account details
  • confirm with e-mail link or Google Authenticator OTP
  • display form to send fiat
    • amount
    • instructions
    • send button with summary and confirmation
  • add FiatWithdrawal entry to the list of pending fiat withdrawal requests
    • publish pending fiat withdrawals in internal API
    • accept request to mark specific FiatWithdrawal as fulfilled
      • create entry in account history, remember fiat tx id(?)


Buy/Sell

Buy bitcoins

  • Instant buy
    • "I want to buy [____] BTC instantly."
    • "You will spend about ____ USD. Average BTC price will be about ____ USD."
    • "Please be aware this is only aproximation. Order book can change every second."
    • Technically equals to submitting buy order with infinite price.
  • Buy with price limit
    • "I want to buy [____] BTC at price [____] USD/BTC."
    • "You will spend about ____ USD. Average BTC price will be about ____ USD."
    • "You need at least ____ USD at hand to submit this order."
    • Validate user has enough funds to submit the order (assuming worst case scenario)
    • Block funds
    • Match with existing orders

Sell bitcoins

  • Instant sell
    • "I want to sell [____] BTC instantly."
    • "You will receive about ____ USD. Average BTC price will be about ____ USD."
    • "Please be aware..."
    • Technically equals to submitting sell order with 0 price.
  • Sell with price limit
    • "I want to sell [____] BTC at price [____] USD/BTC."
    • "You will receive about ____ USD. Average BTC price will be about ____ USD."
    • Validate user has enough funds to submit the order
    • Block funds
    • Match with existing orders
    • Smart defaults: all BTC, market price.