Difference between revisions of "Prime Specification"

From Bitcoin Wiki
Jump to: navigation, search
(Buy bitcoins)
(Sell bitcoins)
Line 92: Line 92:
 
* Instant sell
 
* Instant sell
 
** "I want to sell [____] BTC instantly."
 
** "I want to sell [____] BTC instantly."
** "You will receive about ____ USD. Average BTC price will be about ____ USD."
+
** "You will receive about ____ USD after fee. Average BTC price will be about ____ USD."
 
** "Please be aware..."
 
** "Please be aware..."
 
** Technically equals to submitting sell order with 0 price.
 
** Technically equals to submitting sell order with 0 price.
 
* Sell with price limit
 
* Sell with price limit
 
** "I want to sell [____] BTC at price [____] USD/BTC."
 
** "I want to sell [____] BTC at price [____] USD/BTC."
** "You will receive about ____ USD. Average BTC price will be about ____ USD."
+
** "You will receive about ____ USD after fee. Average BTC price will be about ____ USD."
 
** Validate user has enough funds to submit the order
 
** Validate user has enough funds to submit the order
 
** Block funds
 
** Block funds
 
** Match with existing orders
 
** Match with existing orders
 
** Smart defaults: all BTC, market price
 
** Smart defaults: all BTC, market price

Revision as of 21:40, 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

  • Validate order value denominated in fiat is high enough
    • This is to prevent order and transaction spam/DOS

Buy bitcoins

  • Instant buy
    • "I want to buy [____] BTC instantly."
    • "You will spend about ____ USD and receive ____ BTC after fee. 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 and receive ____ BTC after fee. 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
    • Smart defaults: max BTC user can buy, market price

Sell bitcoins

  • Instant sell
    • "I want to sell [____] BTC instantly."
    • "You will receive about ____ USD after fee. 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 after fee. 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