code: func BackupWallet() (string, error) {
  	type walletBackupResponse struct {
  		Seed         string             `json:"wallet-seed"`
  		Addresses    []*addressResponse `json:"addresses"`
  		IdentityKeys []*addressResponse `json:"identity-keys"`
  	}
  
  	req := NewJSON2Request("wallet-backup", APICounter(), nil)
  	resp, err := walletRequest(req)
  	if err != nil {
  		return "", err
  	}
  	if resp.Error != nil {
  		return "", resp.Error
  	}
  
  	w := new(walletBackupResponse)
  	if err := json.Unmarshal(resp.JSONResult(), w); err != nil {
  		return "", err
  	}
  
  	s := fmt.Sprintln(w.Seed)
  	s += fmt.Sprintln()
  	for _, adr := range w.Addresses {
  		s += fmt.Sprintln(adr.Public)
  		s += fmt.Sprintln(adr.Secret)
  		s += fmt.Sprintln()
  	}
  	for _, k := range w.IdentityKeys {
  		s += fmt.Sprintln(k.Public)
  		s += fmt.Sprintln(k.Secret)
  		s += fmt.Sprintln()
  	}
  	return s, nil
  }
docs: // BackupWallet returns a formatted string with the wallet seed and the secret
  // keys for all of the wallet addresses.