compose-solana-transactions-setup
Setup: Compose solana-transactions
This skill makes the cloned solana-transactions example runnable under the user's own Goldsky account. An HTTP request invokes the task, which fetches BTC/USD from CoinGecko, builds a Solana transaction (Gill + sandboxed transport), signs it with a keypair loaded from Compose secrets, and sends it to the configured Solana RPC. It also stores each price in a bitcoin_prices collection.
Assume the user has never used Goldsky Compose or Solana tooling before.
Non-negotiables
- Never run
goldsky compose deploy,goldsky compose secret set,git push, orgh repo createwithout showing the exact command first and getting explicit confirmation. SOLANA_KEYPAIRmust be the exact JSON byte-array format produced bysolana-keygen(e.g.[12,34,56,...]). Base58, hex, mnemonic, or any other representation will crash the task on theJSON.parse(env.SOLANA_KEYPAIR)call insidesrc/tasks/solana-writer.ts.- The keypair account must hold SOL on the same network as
SOLANA_RPC_URL. Devnet SOL is not mainnet SOL. Missing funds = every tx fails silently atsendTransaction. - Program ID, write discriminator, and PDA seeds are three parts of a single contract. If the user changes the program target, all three must match the new program's IDL.
authentication: "none"(the example default incompose.yaml) makes the deployed task publicly callable. Anyone with the URL can drain the keypair's SOL via repeated invocations. Acceptable for local devnet testing only. Before deploying to mainnet-beta or any non-trivial RPC, change it to"auth_token".
Variable handling for agents
When this skill says $FOO, capture the literal value from the prior command's output and substitute it directly into the next command. Do not rely on shell variables persisting between separate Bash tool invocations — each invocation gets a fresh shell with no env carryover from earlier commands.