Subscription Contract Setup
Be mindful:
Opening a Subscription Contract
#!/bin/bash
# Configuration: Set these values appropriately
PROVIDER_API="127.0.0.1:26657" # RPC endpoint for submitting tx
PROVIDER_PUBKEY="<provider-bech32-pubkey>" # Provider's registered pubkey
SERVICE="<service-name>" # Service string as advertised by provider
CONTRACT_TYPE=0 # 0 = Subscription, 1 = Pay-As-You-Go
CONTRACT_DEPOSIT=172800000 # Deposit (tokens); for subscriptions: rate * duration
CONTRACT_DURATION=86400 # Duration (in blocks)
CONTRACT_RATE="200uarkeo" # Must match provider's published rate
CONTRACT_SETTLEMENT=1000 # Settlement window (blocks)
CONTRACT_QPM=10 # Queries per minute (QPM)
CONTRACT_AUTH=1 # 0 = STRICT, 1 = OPEN
CONTRACT_DELEGATE="" # (Optional) Delegate pubkey
CLIENT_KEY="<your-client-key>" # Your local key name in arkeod keyring
KEYRING_BACKEND="test" # Or \"os\" / \"file\" for better security
FEES="200uarkeo" # Transaction fee
# --- Get client pubkey in bech32 format ---
CLIENT_RAW_PUBKEY=$(arkeod keys show "$CLIENT_KEY" --output json --keyring-backend="$KEYRING_BACKEND" | jq -r .pubkey | jq -r .key)
CLIENT_PUBKEY=$(arkeod debug pubkey-raw "$CLIENT_RAW_PUBKEY" -t secp256k1 | grep 'Bech32 Acc:' | sed "s|Bech32 Acc: ||g")
echo "Provider pubkey: $PROVIDER_PUBKEY"
echo "Client pubkey: $CLIENT_PUBKEY"
# --- Submit transaction to open the contract ---
arkeod tx arkeo open-contract \
"$PROVIDER_PUBKEY" \
"$SERVICE" \
"$CLIENT_PUBKEY" \
"$CONTRACT_TYPE" \
"$CONTRACT_DEPOSIT" \
"$CONTRACT_DURATION" \
"$CONTRACT_RATE" \
"$CONTRACT_QPM" \
"$CONTRACT_SETTLEMENT" \
"$CONTRACT_AUTH" \
"$CONTRACT_DELEGATE" \
--from="$CLIENT_KEY" \
--fees="$FEES" \
--keyring-backend="$KEYRING_BACKEND" \
--node tcp://$PROVIDER_API \
-yConfiguring a Subscription Contract
View Subscription Contract
Test Subscription Contract
Close Subscription Contract
Last updated