The Trinsic Go SDK¶
The Trinsic Go SDK makes it easy to interact with the Trinsic API from any Go application. The most recent version of the library can be found on Github. You can find the SDKs source on Github.
Installation and Configuration¶
If you're installing go on M1, the Standard Go.dev Install Page actually defaults to still showing you an
amd64
install pkg even if you're on an M1.
You have to go to the other downloads page to get the arm64
version for sure.
Notes: Installing the SDK for Go
- You need to have CGO configured for the okapi native binary link.
- Make sure you have the okapi native binaries installed on your machine. Default installation instructions are in the trinsic-id/okapi GitHub repository.
- Run the following command to install the go SDK package
go install github.com/trinsic-id/sdk/[email protected]
-
Test the installation by running the following go code:
trinsicService, err := sdk.NewTrinsic() if err != nil { panic("Account service not created") } profile, err := trinsicService.Account().LoginAnonymous(context.Background()) if err != nil { panic("Sign in failed!") } fmt.Printf("%v\n", profile)
Next Steps¶
Once the go package is installed and configured, you're ready to start building! We recommend going through the walkthrough next. If you're ready to dive into building your ecosystem, check out our API Reference
Start Walkthrough Explore API Go API Reference
Diagnostics¶
M1 Architecture install issues¶
uname -m
echo $GOARCH
The go architecture and apple processor architecture need to match for the dynamic okapi library loading to work.
The long story short is though, when that happens, it actually sets all the environment variables also to AMD, including GOHOSTARCH
, GOARCH
, and GOTOOLDIR
. This, then causes the bad env variable to impact the linker.
If you receive an error that looks like the following on Apple M1 architecture, it is possible that you have the wrong architecture of golang installed/configured.
panic: unable to open a handle to the library [recovered]
panic: unable to open a handle to the library
Try running a test code with the following env vars set:
GOARCH=arm64 go test ./...
If CGO
is not enabled, you will receive an error like the following:
go/pkg/mod/github.com/trinsic-id/okapi/[email protected]/okapi/didcomm.go:22:9: undefined: callOkapiNative
Try running with the following env var set:
CGO_ENABLED=1 go test ./...