Add Course State Validator (Self-Service)
Atlas TX Builder APIAtlas Instance AdminAtlas Self Service
This endpoint allows an instance administrator to add a course state validator to a course instance via self-service. This validator is crucial for managing and verifying course states within the instance.
X-API-Key<token>
API Key for authentication. Example: "YOUR_API_KEY"
In: header
Add Course State Validator Request Body - Contains all necessary information to add a course state validator, including used addresses, change address, collateral UTxO, optional multisig CBOR, the instance admin UTxO, course NFT policy ID, and course NFT mint UTxO.
changeAddress?string
collateralUTxO?object
courseNftMintUTxO?object
courseNftPolicyId?string
instanceAdminUTxO?object
maybeMultisigCbor?string
usedAddresses?array<string>
Response Body
curl -X POST "https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state" \
-H "Content-Type: application/json" \
-d '{}'
const body = JSON.stringify({})
fetch("https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state", {
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state"
body := strings.NewReader(`{}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state"
body = {}
response = requests.request("POST", url, json = body, headers = {
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state"))
.header("Content-Type", "application/json")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.PostAsync("https://andamio-api-308006323670.us-central1.run.app/api/v1/atlas-tx-builder/instance-admin/self-service/add-course-state", body);
var responseBody = await response.Content.ReadAsStringAsync();
{
"instanceNftPolicyId": "policy_id",
"signedTxCBOR": "58..."
}
{
"details": "string",
"message": "Bad Request: Invalid input.",
"status_code": 400
}
{
"details": "string",
"message": "Unauthorized: Invalid or missing credentials.",
"status_code": 401
}
{
"details": "string",
"message": "Forbidden: Insufficient permissions or tier access.",
"status_code": 403
}
{
"details": "string",
"message": "Unprocessable Entity: Invalid request structure or data.",
"status_code": 422
}
{
"details": "string",
"message": "Too Many Requests: Rate limit or quota exceeded.",
"status_code": 429
}
{
"details": "string",
"message": "Internal Server Error: An unexpected error occurred.",
"status_code": 500
}