diff --git a/db/db.sql b/db/db.sql
index 5735ce5a6d708c7201c3b3f22d8017ffac6668f8..7ad7d4b977e5d281a49fc1a3969f64bf536db24c 100644
--- a/db/db.sql
+++ b/db/db.sql
@@ -33,6 +33,18 @@ CREATE TABLE `coins` (
 -- Dumping data for table `coins`
 --
 
+INSERT INTO `coins` (`id`, `coin`) VALUES
+  ('4169868951', 10),
+  ('6621876564', 45),
+  ('0068131062', 54),
+  ('2534892940', 5345),
+  ('2542003092', 645),
+  ('2076048790', 6564),
+  ('7833528552', 8),
+  ('5858179630', 4),
+  ('7807240504', 23),
+  ('7589780480', 1);
+
 LOCK TABLES `coins` WRITE;
 /*!40000 ALTER TABLE `coins` DISABLE KEYS */;
 /*!40000 ALTER TABLE `coins` ENABLE KEYS */;
diff --git a/src/main/java/org/nutricraft/Main.java b/src/main/java/org/nutricraft/Main.java
index 13c6ec470f32eb8350581f85924e0e6dbc79878b..a71d10c8d3bdd635fcb1a7624e6bed94a103f792 100644
--- a/src/main/java/org/nutricraft/Main.java
+++ b/src/main/java/org/nutricraft/Main.java
@@ -1,7 +1,7 @@
 package org.nutricraft;
 
 import org.nutricraft.Database.Database;
-//import org.nutricraft.Services.CoinServicesImpl;
+import org.nutricraft.Services.CoinServicesImpl;
 import org.nutricraft.Services.SubscriptionServicesImpl;
 //import java.lang.reflect.Field;
 import javax.xml.ws.Endpoint;
@@ -16,7 +16,7 @@ public class Main {
             Endpoint.publish("http://nutricraft-soap:8081/ws/subscription", new SubscriptionServicesImpl());
 //            Endpoint.publish("http://nutricraft-soap:8081/ws/userLevels", new SubscriptionServicesImpl());
 //            Endpoint.publish("http://nutricraft-soap:8081/ws/creatorLevels", new SubscriptionServicesImpl());
-//            Endpoint.publish("http://nutricraft-soap:8081/ws/coins", new CoinServicesImpl());
+            Endpoint.publish("http://nutricraft-soap:8081/ws/coins", new CoinServicesImpl());
 //            Thread.sleep(10000);
 //            Database db = new Database();
 //            Connection connection = db.getConn();
diff --git a/src/main/java/org/nutricraft/Services/CoinServices.java b/src/main/java/org/nutricraft/Services/CoinServices.java
index 096cb2dbd59ceb950c224103070125973ea46e32..c7255c2eb353e5853368317bfc739bda103b93cd 100644
--- a/src/main/java/org/nutricraft/Services/CoinServices.java
+++ b/src/main/java/org/nutricraft/Services/CoinServices.java
@@ -1,4 +1,29 @@
 package org.nutricraft.Services;
 
+
+import org.nutricraft.Model.Coins;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import java.util.List;
+
+@WebService
 public interface CoinServices {
+
+    @WebMethod
+    public List<Coins> getAllCoins();
+
+    @WebMethod
+    public Integer getCoins(String id);
+
+    @WebMethod
+    public String addCoins(String id, int coins);
+
+    @WebMethod
+    public String substractCoins(String id, int coins);
+
+    @WebMethod
+    public String deleteCoins(String id);
+
+
 }
diff --git a/src/main/java/org/nutricraft/Services/CoinServicesImpl.java b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java
index cb0f3f7e6962d9413b04324cb6c95cd43f55b526..943b6d0ea014ca0f7582fe26d4ce26ddadbcb193 100644
--- a/src/main/java/org/nutricraft/Services/CoinServicesImpl.java
+++ b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java
@@ -1,4 +1,104 @@
 package org.nutricraft.Services;
 
+import org.nutricraft.Database.Database;
+import org.nutricraft.Model.Coins;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
+
+@WebService(endpointInterface = "org.nutricraft.Services.CoinServices")
 public class CoinServicesImpl implements CoinServices{
+
+    @WebMethod
+    public List<Coins> getAllCoins() {
+        List<Coins> coins = new ArrayList<Coins>();
+        try{
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT * FROM coins";
+            ResultSet result = statement.executeQuery(query);
+            while (result.next()) {
+                coins.add(new Coins(result.getString("id"), result.getInt("coin")));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        for (Coins coin : coins) {
+            System.out.print(coin.getId()+" ");
+            System.out.println(coin.getCoins());
+        }
+
+        return coins;
+    }
+
+    @WebMethod
+    public Integer getCoins(String id) {
+        Integer coin=0;
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT coin FROM coins JOIN subscribers ON coins.id = subscribers.id_creator WHERE coins.id = '" + id + "'";
+            ResultSet result = statement.executeQuery(query);
+            if(result.next()){
+                coin = result.getInt("coin");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return coin;
+    }
+
+    @WebMethod
+    public String addCoins(String id, int coins) {
+        try{
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "UPDATE coins SET coin = coin + " + coins + " WHERE id = '" + id + "'";
+            statement.executeUpdate(query);
+            return "Successfully added coins";
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "Failed to add coins";
+    }
+
+    @WebMethod
+    public String substractCoins(String id, int coins) {
+        try{
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "UPDATE coins SET coin = coin - " + coins + " WHERE id = '" + id + "'";
+            statement.executeUpdate(query);
+            return "Successfully removed coins";
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "Failed to remove coins";
+    }
+
+    @WebMethod
+    public String deleteCoins(String id) {
+        try{
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "DELETE FROM coins WHERE id = '" + id + "'";
+            statement.executeUpdate(query);
+            return "Successfully deleted coins";
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "Failed to delete coins";
+    }
+
+
 }