Upgrade to Shakesco
curl --request POST \
--url https://tokens.shakesco.com/upgrade-to-shakesco \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_ref": "<string>",
"amount": 123
}
'import requests
url = "https://tokens.shakesco.com/upgrade-to-shakesco"
payload = {
"customer_ref": "<string>",
"amount": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_ref: '<string>', amount: 123})
};
fetch('https://tokens.shakesco.com/upgrade-to-shakesco', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tokens.shakesco.com/upgrade-to-shakesco",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_ref' => '<string>',
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tokens.shakesco.com/upgrade-to-shakesco"
payload := strings.NewReader("{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://tokens.shakesco.com/upgrade-to-shakesco")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tokens.shakesco.com/upgrade-to-shakesco")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{ "tx_hash": "0xdef456..." }
{ "error": "Event already claimed" }
Transfer
Upgrade to Shakesco
Credit a customer’s legacy loyalty balance into Shakesco managed tokens
POST
/
upgrade-to-shakesco
Upgrade to Shakesco
curl --request POST \
--url https://tokens.shakesco.com/upgrade-to-shakesco \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_ref": "<string>",
"amount": 123
}
'import requests
url = "https://tokens.shakesco.com/upgrade-to-shakesco"
payload = {
"customer_ref": "<string>",
"amount": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_ref: '<string>', amount: 123})
};
fetch('https://tokens.shakesco.com/upgrade-to-shakesco', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tokens.shakesco.com/upgrade-to-shakesco",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_ref' => '<string>',
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tokens.shakesco.com/upgrade-to-shakesco"
payload := strings.NewReader("{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://tokens.shakesco.com/upgrade-to-shakesco")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tokens.shakesco.com/upgrade-to-shakesco")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_ref\": \"<string>\",\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{ "tx_hash": "0xdef456..." }
{ "error": "Event already claimed" }
For the complete documentation index, see llms.txt.
One-time migration endpoint. Use this to seed a customer’s Shakesco managed balance with the points they accumulated in your previous loyalty system. Each customer can only be upgraded once: subsequent calls return
409 Event already claimed.
See the full Migration Guide for a step-by-step walkthrough including the cutover process.
Treat this as a transaction. If you don’t get a response, verify with
/balance before retrying.Request Body
string
required
Your unique identifier for this customer
number
required
The customer’s legacy points balance to credit. Decimals allowed.
Response
string
Reference identifier for the migration
await fetch("https://tokens.shakesco.com/upgrade-to-shakesco", {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ customer_ref: "customer-123", amount: 250 }),
});
{ "tx_hash": "0xdef456..." }
{ "error": "Event already claimed" }
⌘I