<p>BitGo generally uses 2-of-3 multisig transactions. That means that when you send a transaction, you must provide one of the signatures, and BitGo will add the second signature once you submit the partially signed transaction to the BitGo API. Since you need to use your own private key material to generate a signature, the signature has to be created client-side, or you'd be leaking your private key to BitGo.</p>
<p>The flow to create transactions is that BitGo usually will create an unsigned transaction per your request, then you'll add the first signature locally, and submit the partially-signed transaction either to get BitGo's signature and submit the signed transaction yourself, or for BitGo to finalize and submit it.</p>
<p><code>Express</code> is a standard nodejs server framework to build web applications. BitGo Express is a piece of server software meant to be run on your own server. It wraps the functionality of the BitGo SDK to a set of REST endpoints, and communicates with BitGo's API to make data requests, but since you run it (and it's completely opensource), you can trust it to perform client-side actions such as your signing operations.</p>
<p>The <code>sendcoins</code> endpoint is an Express point. To use it, you must run your own Express server and call the endpoint on your Express server. You tried calling the Express endpoint on BitGo's API instead, but since BitGo cannot perform your signature (as it doesn't have your private key), it cannot perform the functionality your Express server would offer on that call.</p>
<p>You will either need to use the BitGo SDK (<code>bitgojs</code>) locally to make a series of calls in your scripts, i.e. <code>/api/v2/{coin}/wallet/{walletId}/tx/build</code>, sign the tx locally, then submit it via <code>/api/v2/{coin}/wallet/{walletId}/tx/send</code>, or set up an Express server to be able to use <code>api/v2/tbtc/wallet/{walletid}/sendcoins</code>.</p>
<p>I suggest that you carefully read the &quot;Overview&quot; section of the BitGo documentation which describes the above and gives you more instructions on how to authenticate, get wallet data, etc: <a href="https://app.bitgo.com/docs/#tag/Overview" rel="nofollow noreferrer">https://app.bitgo.com/docs/#tag/Overview</a></p>

CC BY-SA 4.0
2022-01-07T17:34:18.033Z
2022-01-07T17:34:18.033Z
Murch
<p>You need to call the BitGo express server running locally.</p>
<ol>
<li><p>Run the docker image of BitGo express</p>
<p>docker run -it -p 3080:3080 bitgosdk/express:latest</p>
</li>
<li><p>Run your request using the localhost:8030, so your URL will look like this:</p>
<p>http://localhost:3080/api/v2/tbtc/wallet/{walletid}/sendcoins</p>
</li>
</ol>

CC BY-SA 4.0
2022-06-06T05:38:28.340Z
2022-06-06T05:38:28.340Z
Mabel Oza
<p>I am building an ASP.Net project (<strong>C# - .Net 4.8 - windows os - visual studio 2015</strong>).<br />
I want to send bitcoin from one address in my wallet to another for test.<br />
Trying to access api url :<br />
<a href="https://test.bitgo.com/api/v2/tbtc/wallet/%7Bwalletid%7D/sendcoins" rel="nofollow noreferrer">https://test.bitgo.com/api/v2/tbtc/wallet/{walletid}/sendcoins</a></p>
<p>But every time getting same response:</p>
<pre><code>{
    &quot;error&quot;: &quot;You have called a BitGo Express endpoint but this is the BitGo server. Please have a look at the BitGo Express documentation: https://www.bitgo.com/api/v2/#bitgo-express-rest-api&quot;,
    &quot;name&quot;: &quot;ApiError&quot;,
    &quot;requestId&quot;: &quot;irfo34r5541k06grtyy4j6n33&quot;,
    &quot;context&quot;: {}
}
</code></pre>
<p>How can I successfully send coins using this api on <code>windows os</code>?<br />
Is it possible to <code>sendcoins</code> without <a href="https://github.com/BitGo/BitGoJS/tree/master/modules/express" rel="nofollow noreferrer">BitGo Express</a>?</p>

<transactions><api><windows><sending><bitgo>
Unable to "sendcoins" using bitgo express apis - Windows OS
SilverLight
# Unable to "sendcoins" using bitgo express apis - Windows OS

(Asked by: username_0 on 2022-01-06)

I am building an ASP.Net project (**C# - .Net 4.8 - windows os - visual studio 2015**).  
I want to send bitcoin from one address in my wallet to another for test.  
Trying to access api url :  
[https://test.bitgo.com/api/v2/tbtc/wallet/{walletid}/sendcoins](https://test.bitgo.com/api/v2/tbtc/wallet/%7Bwalletid%7D/sendcoins)

But every time getting same response:

```
{
    "error": "You have called a BitGo Express endpoint but this is the BitGo server. Please have a look at the BitGo Express documentation: https://www.bitgo.com/api/v2/#bitgo-express-rest-api",
    "name": "ApiError",
    "requestId": "irfo34r5541k06grtyy4j6n33",
    "context": {}
}

```

How can I successfully send coins using this api on `windows os`?  
Is it possible to `sendcoins` without [BitGo Express](https://github.com/BitGo/BitGoJS/tree/master/modules/express)?

**Tags:** transactions, api, windows, sending, bitgo


---

## 2 answers

### Answer by username_1 on 2022-01-07. Score: 2

BitGo generally uses 2-of-3 multisig transactions. That means that when you send a transaction, you must provide one of the signatures, and BitGo will add the second signature once you submit the partially signed transaction to the BitGo API. Since you need to use your own private key material to generate a signature, the signature has to be created client-side, or you'd be leaking your private key to BitGo.

The flow to create transactions is that BitGo usually will create an unsigned transaction per your request, then you'll add the first signature locally, and submit the partially-signed transaction either to get BitGo's signature and submit the signed transaction yourself, or for BitGo to finalize and submit it.

`Express` is a standard nodejs server framework to build web applications. BitGo Express is a piece of server software meant to be run on your own server. It wraps the functionality of the BitGo SDK to a set of REST endpoints, and communicates with BitGo's API to make data requests, but since you run it (and it's completely opensource), you can trust it to perform client-side actions such as your signing operations.

The `sendcoins` endpoint is an Express point. To use it, you must run your own Express server and call the endpoint on your Express server. You tried calling the Express endpoint on BitGo's API instead, but since BitGo cannot perform your signature (as it doesn't have your private key), it cannot perform the functionality your Express server would offer on that call.

You will either need to use the BitGo SDK (`bitgojs`) locally to make a series of calls in your scripts, i.e. `/api/v2/{coin}/wallet/{walletId}/tx/build`, sign the tx locally, then submit it via `/api/v2/{coin}/wallet/{walletId}/tx/send`, or set up an Express server to be able to use `api/v2/tbtc/wallet/{walletid}/sendcoins`.

I suggest that you carefully read the "Overview" section of the BitGo documentation which describes the above and gives you more instructions on how to authenticate, get wallet data, etc: <https://app.bitgo.com/docs/#tag/Overview>


---

### Answer by username_2 on 2022-06-06. Score: 0

You need to call the BitGo express server running locally.

1. Run the docker image of BitGo express

   docker run -it -p 3080:3080 bitgosdk/express:latest
2. Run your request using the localhost:8030, so your URL will look like this:

   http://localhost:3080/api/v2/tbtc/wallet/{walletid}/sendcoins


---

